diff --git a/README.md b/README.md index 426144ca4..72dbc9d77 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ The proxy methods are generated one-time dynamically but only when needed. * Faster parent checks (if required) * NO_SCALE should not not scale (vs previous behavior of having no behavior) * Correct usage of scaleMode depending on mode + * Fullscreen Mode always scaling to fill screen in Firefox (#1256) * AudioSprite - removed an unnecessary if-statement (thanks @DaanHaaz #1312) * ArcadePhysics.skipQuadTree is now set to `true` by default. A QuadTree is a wonderful thing if the objects in your game are well spaced out. But in tightly packed games, especially those with tilemaps or single-screen games, they are a considerable performance drain and eat up CPU. We've taken the decision to disable the Arcade Physics QuadTree by default. It's all still in there and can be re-enabled via `game.physics.arcade.skipQuadTree = false`, but please only do so if you're sure your game benefits from this. * Phaser.DOM now houses new DOM functions. Some have been moved over from ScaleManager as appropriate. diff --git a/build/custom/phaser-arcade-physics.js b/build/custom/phaser-arcade-physics.js index 68526f57e..5e319d291 100644 --- a/build/custom/phaser-arcade-physics.js +++ b/build/custom/phaser-arcade-physics.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Nov 12 2014 22:48:42 +* v2.2.0 "Bethal" - Built: Fri Nov 14 2014 08:15:57 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -11885,7 +11885,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Nov 12 2014 22:48:42 +* v2.2.0 "Bethal" - Built: Fri Nov 14 2014 08:15:57 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -11928,7 +11928,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) */ var Phaser = Phaser || { - VERSION: '2.2.0-RC5', + VERSION: '2.2.0-RC6', GAMES: [], AUTO: 0, @@ -12002,11 +12002,6 @@ PIXI.InteractionManager = PIXI.InteractionManager || function () {}; // Equally we're going to supress the Pixi console log, with their agreement. PIXI.dontSayHello = true; -// PIXI.Polygon.prototype.type = PIXI.Graphics.POLY; -// PIXI.Rectangle.prototype.type = PIXI.Graphics.RECT; -// PIXI.Circle.prototype.type = PIXI.Graphics.CIRC; -// PIXI.Ellipse.prototype.type = PIXI.Graphics.ELIP; - /** * @author Richard Davey * @copyright 2014 Photon Storm Ltd. @@ -20225,7 +20220,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { get: function () { - return !PIXI.scaleModes.LINEAR; + return PIXI.scaleModes.DEFAULT === PIXI.scaleModes.LINEAR; }, @@ -20233,11 +20228,11 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { if (value) { - PIXI.scaleModes.LINEAR = 0; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.LINEAR; } else { - PIXI.scaleModes.LINEAR = 1; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.NEAREST; } } @@ -25613,13 +25608,13 @@ Phaser.Game.prototype = { if (this.device.chrome) { var args = [ - '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + ' http://phaser.io %c %c \u2665%c\u2665%c\u2665 ', - 'background: #7a66a3', - 'background: #625186', - 'color: #ffffff; background: #43375b;', - 'background: #625186', - 'background: #ccb9f2', - 'background: #625186' + '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + '%c http://phaser.io %c\u2665%c\u2665%c\u2665', + 'background: #3db79f', + 'background: #329582', + 'color: #ffffff; background: #226558;', + 'background: #329582', + 'background: #3db79f', + 'background: #ffffff' ]; for (var i = 0; i < 3; i++) @@ -27177,13 +27172,13 @@ Phaser.Key = function (game, keycode) { this.event = null; /** - * @property {boolean} isDown - The "down" state of the key. + * @property {boolean} isDown - The "down" state of the key. This will remain `true` for as long as the keyboard thinks this key is held down. * @default */ this.isDown = false; /** - * @property {boolean} isUp - The "up" state of the key. + * @property {boolean} isUp - The "up" state of the key. This will remain `true` for as long as the keyboard thinks this key is up. * @default */ this.isUp = true; @@ -27256,10 +27251,28 @@ Phaser.Key = function (game, keycode) { */ this.onUp = new Phaser.Signal(); + /** + * @property {boolean} _justDown - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justDown = false; + + /** + * @property {boolean} _justUp - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justUp = false; + }; Phaser.Key.prototype = { + /** + * Called automatically by Phaser.Keyboard. + * + * @method Phaser.Key#update + * @protected + */ update: function () { if (!this._enabled) { return; } @@ -27279,8 +27292,9 @@ Phaser.Key.prototype = { /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyDown - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyDown: function (event) { @@ -27289,6 +27303,7 @@ Phaser.Key.prototype = { this.event = event; + // exit if this key down is from auto-repeat if (this.isDown) { return; @@ -27304,14 +27319,19 @@ Phaser.Key.prototype = { this.duration = 0; this.repeats = 0; + // _justDown will remain true until it is read via the justDown Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justDown = true; + this.onDown.dispatch(this); }, /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyUp - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyUp: function (event) { @@ -27330,6 +27350,10 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = this.game.time.time - this.timeDown; + // _justUp will remain true until it is read via the justUp Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justUp = true; + this.onUp.dispatch(this); }, @@ -27352,6 +27376,8 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = 0; this._enabled = true; // .enabled causes reset(false) + this._justDown = false; + this._justUp = false; if (hard) { @@ -27364,12 +27390,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just pressed" state of the Key. Just pressed is considered true if the key was pressed down within the duration given. - * @method Phaser.Key#justPressed - * @param {number} [duration=50] - The duration below which the key is considered as being just pressed. - * @return {boolean} True if the key is just pressed otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#downDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just pressed. Given in ms. + * @return {boolean} True if the key was pressed down within the given duration. */ - justPressed: function (duration) { + downDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -27378,12 +27406,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just released" state of the Key. Just released is considered as being true if the key was released within the duration given. - * @method Phaser.Key#justReleased - * @param {number} [duration=50] - The duration below which the key is considered as being just released. - * @return {boolean} True if the key is just released otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#upDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just released. Given in ms. + * @return {boolean} True if the key was released down within the given duration. */ - justReleased: function (duration) { + upDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -27393,9 +27423,54 @@ Phaser.Key.prototype = { }; +/** +* The justDown value allows you to test if this Key has just been pressed down or not. +* When you check this value it will return `true` if the Key is down, otherwise `false`. +* You can only call justDown once per key press. It will only return `true` once, until the Key is released and pressed down again. +* This allows you to use it in situations where you want to check if this key is down without using a Signal, such as in a core game loop. +* +* @property {boolean} justDown +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justDown", { + + get: function () { + + var current = this._justDown; + this._justDown = false; + return current; + + } + +}); + +/** +* The justUp value allows you to test if this Key has just been released or not. +* When you check this value it will return `true` if the Key is up, otherwise `false`. +* You can only call justUp once per key release. It will only return `true` once, until the Key is pressed down and released again. +* This allows you to use it in situations where you want to check if this key is up without using a Signal, such as in a core game loop. +* +* @property {boolean} justUp +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justUp", { + + get: function () { + + var current = this._justUp; + this._justUp = false; + return current; + + } + +}); + /** * An enabled key processes its update and dispatches events. * A key can be disabled momentarily at runtime instead of deleting it. +* * @property {boolean} enabled * @memberof Phaser.Key * @default true @@ -27403,9 +27478,13 @@ Phaser.Key.prototype = { Object.defineProperty(Phaser.Key.prototype, "enabled", { get: function () { + return this._enabled; + }, + set: function (value) { + value = !!value; if (value !== this._enabled) @@ -27414,6 +27493,7 @@ Object.defineProperty(Phaser.Key.prototype, "enabled", { { this.reset(false); } + this._enabled = value; } } @@ -41833,7 +41913,6 @@ Phaser.Button.prototype.removedFromWorld = function () { */ Phaser.Button.prototype.setStateFrame = function (state, frame, switchImmediately) { - var frameKey = '_on' + state + 'Frame'; if (frame != null) // not null or undefined diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js index 1af6b2c31..ea1c86480 100644 --- a/build/custom/phaser-arcade-physics.min.js +++ b/build/custom/phaser-arcade-physics.min.js @@ -2,12 +2,12 @@ (function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.1.0",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.dontSayHello=!1,b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://www.pixijs.com/");b.dontSayHello=!0}},b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),a[0]instanceof b.Point){for(var c=[],d=0,e=a.length;e>d;d++)c.push(a[d].x,a[d].y);a=c}this.closed=!0,this.points=a},b.Polygon.prototype.clone=function(){var a=this.points.slice();return new b.Polygon(a)},b.Polygon.prototype.contains=function(a,b){for(var c=!1,d=this.points.length/2,e=0,f=d-1;d>e;f=e++){var g=this.points[2*e],h=this.points[2*e+1],i=this.points[2*f],j=this.points[2*f+1],k=h>b!=j>b&&(i-g)*(b-h)/(j-h)+g>a;k&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new b.Float32Array(9));var c=this.array;return a?(c[0]=this.a,c[1]=this.b,c[2]=0,c[3]=this.c,c[4]=this.d,c[5]=0,c[6]=this.tx,c[7]=this.ty,c[8]=1):(c[0]=this.a,c[1]=this.c,c[2]=this.tx,c[3]=this.b,c[4]=this.d,c[5]=this.ty,c[6]=0,c[7]=0,c[8]=1),c},b.Matrix.prototype.apply=function(a,c){return c=c||new b.Point,c.x=this.a*a.x+this.c*a.y+this.tx,c.y=this.b*a.x+this.d*a.y+this.ty,c},b.Matrix.prototype.applyInverse=function(a,c){c=c||new b.Point;var d=1/(this.a*this.d+this.c*-this.b);return c.x=this.d*d*a.x+-this.c*d*a.y+(this.ty*this.c-this.tx*this.d)*d,c.y=this.a*d*a.y+-this.b*d*a.x+(-this.ty*this.a+this.tx*this.b)*d,c},b.Matrix.prototype.translate=function(a,b){return this.tx+=a,this.ty+=b,this},b.Matrix.prototype.scale=function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},b.Matrix.prototype.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},b.Matrix.prototype.append=function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},b.Matrix.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},b.identityMatrix=new b.Matrix,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.RoundedRectangle=function(a,b,c,d,e){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0,this.radius=e||20},b.RoundedRectangle.prototype.clone=function(){return new b.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},b.RoundedRectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.RoundedRectangle.prototype.constructor=b.RoundedRectangle,b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(){if(0===this.children.length)return b.EmptyRectangle;for(var a,c,d,e=1/0,f=1/0,g=-1/0,h=-1/0,i=!1,j=0,k=this.children.length;k>j;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.shader=null,a.baseTexture.hasLoaded?this.onTextureUpdate():this.texture.on("update",this.onTextureUpdate.bind(this)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(!(this.visible===!1||0===this.alpha||this.texture.crop.width<=0||this.texture.crop.height<=0)){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var c=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution|0,this.worldTransform.ty*a.resolution|0):a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution,this.worldTransform.ty*a.resolution),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var d=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,e=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)}for(var f=0,g=this.children.length;g>f;f++)this.children[f]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fi;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.wordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},function(a){for(var b=0,c=["ms","moz","webkit","o"],d=0;d>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){return function(a){function b(){for(var d=arguments.length,f=new Array(d);d--;)f[d]=arguments[d];return f=e.concat(f),c.apply(this instanceof b?this:a,f)}var c=this,d=arguments.length-1,e=[];if(d>0)for(e.length=d;d--;)e[d]=arguments[d+1];if("function"!=typeof c)throw new TypeError;return b.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(c.prototype),b}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget={call:function(a){a&&(a=a.prototype||a,b.EventTarget.mixin(a))},mixin:function(a){a.listeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?this._listeners[a].slice():[]},a.emit=a.dispatchEvent=function(a,c){if(this._listeners=this._listeners||{},"object"==typeof a&&(c=a,a=a.type),c&&c.__isEventObject===!0||(c=new b.Event(this,a,c)),this._listeners&&this._listeners[a]){var d,e=this._listeners[a].slice(0),f=e.length,g=e[0];for(d=0;f>d;g=e[++d])if(g.call(this,c),c.stoppedImmediate)return this;if(c.stopped)return this}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{}; var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;"," vColor = vec4(color * aColor.x, aColor.x);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.lastIndex=0,this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[],this.lastIndex=0},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP) }},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.worldAlpha,i=a.tint,j=this.vertices,k=a.anchor.x,l=a.anchor.y;if(b.trim){var m=b.trim;e=m.x-k*m.width,d=e+b.crop.width,g=m.y-l*m.height,f=g+b.crop.height}else d=b.frame.width*(1-k),e=b.frame.width*-k,f=b.frame.height*(1-l),g=b.frame.height*-l;var n=4*this.currentBatchSize*this.vertSize,o=b.baseTexture.resolution,p=a.worldTransform,q=p.a/o,r=p.b/o,s=p.c/o,t=p.d/o,u=p.tx,v=p.ty;j[n++]=q*e+s*g+u,j[n++]=t*g+r*e+v,j[n++]=c.x0,j[n++]=c.y0,j[n++]=h,j[n++]=i,j[n++]=q*d+s*g+u,j[n++]=t*g+r*d+v,j[n++]=c.x1,j[n++]=c.y1,j[n++]=h,j[n++]=i,j[n++]=q*d+s*f+u,j[n++]=t*f+r*d+v,j[n++]=c.x2,j[n++]=c.y2,j[n++]=h,j[n++]=i,j[n++]=q*e+s*f+u,j[n++]=t*f+r*e+v,j[n++]=c.x3,j[n++]=c.y3,j[n++]=h,j[n++]=i,this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.worldAlpha,j=a.tint,k=this.vertices,l=a.width,m=a.height,n=a.anchor.x,o=a.anchor.y,p=l*(1-n),q=l*-n,r=m*(1-o),s=m*-o,t=4*this.currentBatchSize*this.vertSize,u=c.baseTexture.resolution,v=a.worldTransform,w=v.a/u,x=v.b/u,y=v.c/u,z=v.d/u,A=v.tx,B=v.ty;k[t++]=w*q+y*s+A,k[t++]=z*s+x*q+B,k[t++]=d.x0,k[t++]=d.y0,k[t++]=i,k[t++]=j,k[t++]=w*p+y*s+A,k[t++]=z*s+x*p+B,k[t++]=d.x1,k[t++]=d.y1,k[t++]=i,k[t++]=j,k[t++]=w*p+y*r+A,k[t++]=z*r+x*p+B,k[t++]=d.x2,k[t++]=d.y2,k[t++]=i,k[t++]=j,k[t++]=w*q+y*r+A,k[t++]=z*r+x*q+B,k[t++]=d.x3,k[t++]=d.y3,k[t++]=i,k[t++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,2,c.FLOAT,!1,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath(),(g.fillColor||0===g.fillColor)&&(c.globalAlpha=g.fillAlpha*d,c.fillStyle=e="#"+("00000"+(0|g.fillColor).toString(16)).substr(-6),c.fill()),g.lineWidth&&(c.globalAlpha=g.lineAlpha*d,c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath()}}}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.padding=0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var b=a.gl,c=a.projection,d=a.offset,e=a.shaderManager.stripShader;a.blendModeManager.setBlendMode(this.blendMode),b.uniformMatrix3fv(e.translationMatrix,!1,this.worldTransform.toArray(!0)),b.uniform2f(e.projectionVector,c.x,-c.y),b.uniform2f(e.offsetVector,-d.x,-d.y),b.uniform1f(e.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.STATIC_DRAW),b.vertexAttribPointer(e.aVertexPosition,2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.vertexAttribPointer(e.aTextureCoord,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),this.texture.baseTexture._dirty[b.id]?a.renderer.updateTexture(this.texture.baseTexture):b.bindTexture(b.TEXTURE_2D,this.texture.baseTexture._glTextures[b.id]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)):(b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferSubData(b.ARRAY_BUFFER,0,this.verticies),b.vertexAttribPointer(e.aVertexPosition,2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.vertexAttribPointer(e.aTextureCoord,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),this.texture.baseTexture._dirty[b.id]?a.renderer.updateTexture(this.texture.baseTexture):b.bindTexture(b.TEXTURE_2D,this.texture.baseTexture._glTextures[b.id]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),b.drawElements(b.TRIANGLE_STRIP,this.indices.length,b.UNSIGNED_SHORT,0) -},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.b,c.c,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.b,c.c,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5];if(this.padding>0){var p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3)}var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.c*g,f.b*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC5",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.righth;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5];if(this.padding>0){var p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3)}var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.c*g,f.b*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g=a+Math.cos(d)*c,h=b+Math.sin(d)*c,i=this.currentPath.shape.points;if(0===i.length?(this.moveTo(g,h),i=this.currentPath.shape.points):(i[i.length-2]!==g||i[i.length-1]!==h)&&i.push(g,h),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);i.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this.fillColor=d,this.fillAlpha=e,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this._edge=0,this._position=new c.Point,this.displayObject=null,this.scale=null,this._targetPosition=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target).multiply(this.target.parent?this.target.parent.worldTransform.a:1,this.target.parent?this.target.parent.worldTransform.d:1),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.ArrayList=function(){this.total=0,this.position=0,this.list=[]},c.ArrayList.prototype={add:function(a){return this.exists(a)||(this.list.push(a),this.total++),a},getIndex:function(a){return this.list.indexOf(a)},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),this.total--,a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(c.ArrayList.prototype,"next",{get:function(){return this.positionb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return!PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.LINEAR=a?0:1}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c http://phaser.io %c %c ♥%c♥%c♥ ","background: #7a66a3","background: #625186","color: #ffffff; background: #43375b;","background: #625186","background: #ccb9f2","background: #625186"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds.dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),b.x=d.left+h-f,b.y=d.top+g-e,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.getViewport():1===a.nodeType?this.getElementBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},getViewport:function(){return{width:this.viewportWidth,height:this.viewportHeight}},inViewport:function(a,b){var c=this.getElementBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.viewportWidth&&c.left<=this.viewportHeight},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.viewportHeight>this.viewportWidth?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.viewportHeight>this.viewportWidth?d:e}},Object.defineProperty(c.DOM,"scrollX",{get:function(){return window.pageXOffset||document.documentElement.scrollLeft}}),Object.defineProperty(c.DOM,"scrollY",{get:function(){return window.pageYOffset||document.documentElement.scrollTop}}),Object.defineProperty(c.DOM,"viewportWidth",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM,"viewportHeight",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}}),Object.defineProperty(c.DOM,"documentWidth",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM,"documentHeight",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}}),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkInput()},c.Device.LITTLE_ENDIAN=!1,c.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Playstation Vita/.test(a)?this.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?this.kindle=!0:/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1||this.chromeOS)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},_checkInput:function(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.cocoonJS||("onwheel"in window||this.ie&&"WheelEvent"in window?this.wheelEvent="wheel":"onmousewheel"in window?this.wheelEvent="mousewheel":this.firefox&&"MouseScrollEvent"in window&&(this.wheelEvent="DOMMouseScroll"))},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},c.Device.prototype.constructor=c.Device,c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var h=Math.PI/180,i=180/Math.PI;c.Math.degToRad=function(a){return a*h},c.Math.radToDeg=function(a){return a*i},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#"); diff --git a/build/custom/phaser-ninja-physics.js b/build/custom/phaser-ninja-physics.js index 5d24d9a77..153468ac3 100644 --- a/build/custom/phaser-ninja-physics.js +++ b/build/custom/phaser-ninja-physics.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Nov 12 2014 22:48:42 +* v2.2.0 "Bethal" - Built: Fri Nov 14 2014 08:15:58 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -11885,7 +11885,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Nov 12 2014 22:48:42 +* v2.2.0 "Bethal" - Built: Fri Nov 14 2014 08:15:57 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -11928,7 +11928,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) */ var Phaser = Phaser || { - VERSION: '2.2.0-RC5', + VERSION: '2.2.0-RC6', GAMES: [], AUTO: 0, @@ -12002,11 +12002,6 @@ PIXI.InteractionManager = PIXI.InteractionManager || function () {}; // Equally we're going to supress the Pixi console log, with their agreement. PIXI.dontSayHello = true; -// PIXI.Polygon.prototype.type = PIXI.Graphics.POLY; -// PIXI.Rectangle.prototype.type = PIXI.Graphics.RECT; -// PIXI.Circle.prototype.type = PIXI.Graphics.CIRC; -// PIXI.Ellipse.prototype.type = PIXI.Graphics.ELIP; - /** * @author Richard Davey * @copyright 2014 Photon Storm Ltd. @@ -20225,7 +20220,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { get: function () { - return !PIXI.scaleModes.LINEAR; + return PIXI.scaleModes.DEFAULT === PIXI.scaleModes.LINEAR; }, @@ -20233,11 +20228,11 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { if (value) { - PIXI.scaleModes.LINEAR = 0; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.LINEAR; } else { - PIXI.scaleModes.LINEAR = 1; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.NEAREST; } } @@ -25613,13 +25608,13 @@ Phaser.Game.prototype = { if (this.device.chrome) { var args = [ - '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + ' http://phaser.io %c %c \u2665%c\u2665%c\u2665 ', - 'background: #7a66a3', - 'background: #625186', - 'color: #ffffff; background: #43375b;', - 'background: #625186', - 'background: #ccb9f2', - 'background: #625186' + '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + '%c http://phaser.io %c\u2665%c\u2665%c\u2665', + 'background: #3db79f', + 'background: #329582', + 'color: #ffffff; background: #226558;', + 'background: #329582', + 'background: #3db79f', + 'background: #ffffff' ]; for (var i = 0; i < 3; i++) @@ -27177,13 +27172,13 @@ Phaser.Key = function (game, keycode) { this.event = null; /** - * @property {boolean} isDown - The "down" state of the key. + * @property {boolean} isDown - The "down" state of the key. This will remain `true` for as long as the keyboard thinks this key is held down. * @default */ this.isDown = false; /** - * @property {boolean} isUp - The "up" state of the key. + * @property {boolean} isUp - The "up" state of the key. This will remain `true` for as long as the keyboard thinks this key is up. * @default */ this.isUp = true; @@ -27256,10 +27251,28 @@ Phaser.Key = function (game, keycode) { */ this.onUp = new Phaser.Signal(); + /** + * @property {boolean} _justDown - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justDown = false; + + /** + * @property {boolean} _justUp - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justUp = false; + }; Phaser.Key.prototype = { + /** + * Called automatically by Phaser.Keyboard. + * + * @method Phaser.Key#update + * @protected + */ update: function () { if (!this._enabled) { return; } @@ -27279,8 +27292,9 @@ Phaser.Key.prototype = { /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyDown - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyDown: function (event) { @@ -27289,6 +27303,7 @@ Phaser.Key.prototype = { this.event = event; + // exit if this key down is from auto-repeat if (this.isDown) { return; @@ -27304,14 +27319,19 @@ Phaser.Key.prototype = { this.duration = 0; this.repeats = 0; + // _justDown will remain true until it is read via the justDown Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justDown = true; + this.onDown.dispatch(this); }, /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyUp - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyUp: function (event) { @@ -27330,6 +27350,10 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = this.game.time.time - this.timeDown; + // _justUp will remain true until it is read via the justUp Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justUp = true; + this.onUp.dispatch(this); }, @@ -27352,6 +27376,8 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = 0; this._enabled = true; // .enabled causes reset(false) + this._justDown = false; + this._justUp = false; if (hard) { @@ -27364,12 +27390,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just pressed" state of the Key. Just pressed is considered true if the key was pressed down within the duration given. - * @method Phaser.Key#justPressed - * @param {number} [duration=50] - The duration below which the key is considered as being just pressed. - * @return {boolean} True if the key is just pressed otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#downDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just pressed. Given in ms. + * @return {boolean} True if the key was pressed down within the given duration. */ - justPressed: function (duration) { + downDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -27378,12 +27406,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just released" state of the Key. Just released is considered as being true if the key was released within the duration given. - * @method Phaser.Key#justReleased - * @param {number} [duration=50] - The duration below which the key is considered as being just released. - * @return {boolean} True if the key is just released otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#upDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just released. Given in ms. + * @return {boolean} True if the key was released down within the given duration. */ - justReleased: function (duration) { + upDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -27393,9 +27423,54 @@ Phaser.Key.prototype = { }; +/** +* The justDown value allows you to test if this Key has just been pressed down or not. +* When you check this value it will return `true` if the Key is down, otherwise `false`. +* You can only call justDown once per key press. It will only return `true` once, until the Key is released and pressed down again. +* This allows you to use it in situations where you want to check if this key is down without using a Signal, such as in a core game loop. +* +* @property {boolean} justDown +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justDown", { + + get: function () { + + var current = this._justDown; + this._justDown = false; + return current; + + } + +}); + +/** +* The justUp value allows you to test if this Key has just been released or not. +* When you check this value it will return `true` if the Key is up, otherwise `false`. +* You can only call justUp once per key release. It will only return `true` once, until the Key is pressed down and released again. +* This allows you to use it in situations where you want to check if this key is up without using a Signal, such as in a core game loop. +* +* @property {boolean} justUp +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justUp", { + + get: function () { + + var current = this._justUp; + this._justUp = false; + return current; + + } + +}); + /** * An enabled key processes its update and dispatches events. * A key can be disabled momentarily at runtime instead of deleting it. +* * @property {boolean} enabled * @memberof Phaser.Key * @default true @@ -27403,9 +27478,13 @@ Phaser.Key.prototype = { Object.defineProperty(Phaser.Key.prototype, "enabled", { get: function () { + return this._enabled; + }, + set: function (value) { + value = !!value; if (value !== this._enabled) @@ -27414,6 +27493,7 @@ Object.defineProperty(Phaser.Key.prototype, "enabled", { { this.reset(false); } + this._enabled = value; } } @@ -41833,7 +41913,6 @@ Phaser.Button.prototype.removedFromWorld = function () { */ Phaser.Button.prototype.setStateFrame = function (state, frame, switchImmediately) { - var frameKey = '_on' + state + 'Frame'; if (frame != null) // not null or undefined diff --git a/build/custom/phaser-ninja-physics.min.js b/build/custom/phaser-ninja-physics.min.js index 6cfc22c60..73f202cfa 100644 --- a/build/custom/phaser-ninja-physics.min.js +++ b/build/custom/phaser-ninja-physics.min.js @@ -2,12 +2,12 @@ (function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.1.0",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.dontSayHello=!1,b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://www.pixijs.com/");b.dontSayHello=!0}},b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),a[0]instanceof b.Point){for(var c=[],d=0,e=a.length;e>d;d++)c.push(a[d].x,a[d].y);a=c}this.closed=!0,this.points=a},b.Polygon.prototype.clone=function(){var a=this.points.slice();return new b.Polygon(a)},b.Polygon.prototype.contains=function(a,b){for(var c=!1,d=this.points.length/2,e=0,f=d-1;d>e;f=e++){var g=this.points[2*e],h=this.points[2*e+1],i=this.points[2*f],j=this.points[2*f+1],k=h>b!=j>b&&(i-g)*(b-h)/(j-h)+g>a;k&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new b.Float32Array(9));var c=this.array;return a?(c[0]=this.a,c[1]=this.b,c[2]=0,c[3]=this.c,c[4]=this.d,c[5]=0,c[6]=this.tx,c[7]=this.ty,c[8]=1):(c[0]=this.a,c[1]=this.c,c[2]=this.tx,c[3]=this.b,c[4]=this.d,c[5]=this.ty,c[6]=0,c[7]=0,c[8]=1),c},b.Matrix.prototype.apply=function(a,c){return c=c||new b.Point,c.x=this.a*a.x+this.c*a.y+this.tx,c.y=this.b*a.x+this.d*a.y+this.ty,c},b.Matrix.prototype.applyInverse=function(a,c){c=c||new b.Point;var d=1/(this.a*this.d+this.c*-this.b);return c.x=this.d*d*a.x+-this.c*d*a.y+(this.ty*this.c-this.tx*this.d)*d,c.y=this.a*d*a.y+-this.b*d*a.x+(-this.ty*this.a+this.tx*this.b)*d,c},b.Matrix.prototype.translate=function(a,b){return this.tx+=a,this.ty+=b,this},b.Matrix.prototype.scale=function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},b.Matrix.prototype.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},b.Matrix.prototype.append=function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},b.Matrix.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},b.identityMatrix=new b.Matrix,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.RoundedRectangle=function(a,b,c,d,e){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0,this.radius=e||20},b.RoundedRectangle.prototype.clone=function(){return new b.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},b.RoundedRectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.RoundedRectangle.prototype.constructor=b.RoundedRectangle,b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(){if(0===this.children.length)return b.EmptyRectangle;for(var a,c,d,e=1/0,f=1/0,g=-1/0,h=-1/0,i=!1,j=0,k=this.children.length;k>j;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.shader=null,a.baseTexture.hasLoaded?this.onTextureUpdate():this.texture.on("update",this.onTextureUpdate.bind(this)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(!(this.visible===!1||0===this.alpha||this.texture.crop.width<=0||this.texture.crop.height<=0)){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var c=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution|0,this.worldTransform.ty*a.resolution|0):a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution,this.worldTransform.ty*a.resolution),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var d=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,e=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)}for(var f=0,g=this.children.length;g>f;f++)this.children[f]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fi;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.wordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},function(a){for(var b=0,c=["ms","moz","webkit","o"],d=0;d>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){return function(a){function b(){for(var d=arguments.length,f=new Array(d);d--;)f[d]=arguments[d];return f=e.concat(f),c.apply(this instanceof b?this:a,f)}var c=this,d=arguments.length-1,e=[];if(d>0)for(e.length=d;d--;)e[d]=arguments[d+1];if("function"!=typeof c)throw new TypeError;return b.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(c.prototype),b}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget={call:function(a){a&&(a=a.prototype||a,b.EventTarget.mixin(a))},mixin:function(a){a.listeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?this._listeners[a].slice():[]},a.emit=a.dispatchEvent=function(a,c){if(this._listeners=this._listeners||{},"object"==typeof a&&(c=a,a=a.type),c&&c.__isEventObject===!0||(c=new b.Event(this,a,c)),this._listeners&&this._listeners[a]){var d,e=this._listeners[a].slice(0),f=e.length,g=e[0];for(d=0;f>d;g=e[++d])if(g.call(this,c),c.stoppedImmediate)return this;if(c.stopped)return this}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{}; var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;"," vColor = vec4(color * aColor.x, aColor.x);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.lastIndex=0,this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[],this.lastIndex=0},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP) }},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.worldAlpha,i=a.tint,j=this.vertices,k=a.anchor.x,l=a.anchor.y;if(b.trim){var m=b.trim;e=m.x-k*m.width,d=e+b.crop.width,g=m.y-l*m.height,f=g+b.crop.height}else d=b.frame.width*(1-k),e=b.frame.width*-k,f=b.frame.height*(1-l),g=b.frame.height*-l;var n=4*this.currentBatchSize*this.vertSize,o=b.baseTexture.resolution,p=a.worldTransform,q=p.a/o,r=p.b/o,s=p.c/o,t=p.d/o,u=p.tx,v=p.ty;j[n++]=q*e+s*g+u,j[n++]=t*g+r*e+v,j[n++]=c.x0,j[n++]=c.y0,j[n++]=h,j[n++]=i,j[n++]=q*d+s*g+u,j[n++]=t*g+r*d+v,j[n++]=c.x1,j[n++]=c.y1,j[n++]=h,j[n++]=i,j[n++]=q*d+s*f+u,j[n++]=t*f+r*d+v,j[n++]=c.x2,j[n++]=c.y2,j[n++]=h,j[n++]=i,j[n++]=q*e+s*f+u,j[n++]=t*f+r*e+v,j[n++]=c.x3,j[n++]=c.y3,j[n++]=h,j[n++]=i,this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.worldAlpha,j=a.tint,k=this.vertices,l=a.width,m=a.height,n=a.anchor.x,o=a.anchor.y,p=l*(1-n),q=l*-n,r=m*(1-o),s=m*-o,t=4*this.currentBatchSize*this.vertSize,u=c.baseTexture.resolution,v=a.worldTransform,w=v.a/u,x=v.b/u,y=v.c/u,z=v.d/u,A=v.tx,B=v.ty;k[t++]=w*q+y*s+A,k[t++]=z*s+x*q+B,k[t++]=d.x0,k[t++]=d.y0,k[t++]=i,k[t++]=j,k[t++]=w*p+y*s+A,k[t++]=z*s+x*p+B,k[t++]=d.x1,k[t++]=d.y1,k[t++]=i,k[t++]=j,k[t++]=w*p+y*r+A,k[t++]=z*r+x*p+B,k[t++]=d.x2,k[t++]=d.y2,k[t++]=i,k[t++]=j,k[t++]=w*q+y*r+A,k[t++]=z*r+x*q+B,k[t++]=d.x3,k[t++]=d.y3,k[t++]=i,k[t++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,2,c.FLOAT,!1,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath(),(g.fillColor||0===g.fillColor)&&(c.globalAlpha=g.fillAlpha*d,c.fillStyle=e="#"+("00000"+(0|g.fillColor).toString(16)).substr(-6),c.fill()),g.lineWidth&&(c.globalAlpha=g.lineAlpha*d,c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath()}}}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.padding=0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var b=a.gl,c=a.projection,d=a.offset,e=a.shaderManager.stripShader;a.blendModeManager.setBlendMode(this.blendMode),b.uniformMatrix3fv(e.translationMatrix,!1,this.worldTransform.toArray(!0)),b.uniform2f(e.projectionVector,c.x,-c.y),b.uniform2f(e.offsetVector,-d.x,-d.y),b.uniform1f(e.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.STATIC_DRAW),b.vertexAttribPointer(e.aVertexPosition,2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.vertexAttribPointer(e.aTextureCoord,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),this.texture.baseTexture._dirty[b.id]?a.renderer.updateTexture(this.texture.baseTexture):b.bindTexture(b.TEXTURE_2D,this.texture.baseTexture._glTextures[b.id]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)):(b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferSubData(b.ARRAY_BUFFER,0,this.verticies),b.vertexAttribPointer(e.aVertexPosition,2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.vertexAttribPointer(e.aTextureCoord,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),this.texture.baseTexture._dirty[b.id]?a.renderer.updateTexture(this.texture.baseTexture):b.bindTexture(b.TEXTURE_2D,this.texture.baseTexture._glTextures[b.id]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),b.drawElements(b.TRIANGLE_STRIP,this.indices.length,b.UNSIGNED_SHORT,0) -},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.b,c.c,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.b,c.c,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5];if(this.padding>0){var p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3)}var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.c*g,f.b*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC5",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.righth;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5];if(this.padding>0){var p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3)}var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.c*g,f.b*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g=a+Math.cos(d)*c,h=b+Math.sin(d)*c,i=this.currentPath.shape.points;if(0===i.length?(this.moveTo(g,h),i=this.currentPath.shape.points):(i[i.length-2]!==g||i[i.length-1]!==h)&&i.push(g,h),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);i.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this.fillColor=d,this.fillAlpha=e,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this._edge=0,this._position=new c.Point,this.displayObject=null,this.scale=null,this._targetPosition=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target).multiply(this.target.parent?this.target.parent.worldTransform.a:1,this.target.parent?this.target.parent.worldTransform.d:1),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.ArrayList=function(){this.total=0,this.position=0,this.list=[]},c.ArrayList.prototype={add:function(a){return this.exists(a)||(this.list.push(a),this.total++),a},getIndex:function(a){return this.list.indexOf(a)},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),this.total--,a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(c.ArrayList.prototype,"next",{get:function(){return this.positionb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return!PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.LINEAR=a?0:1}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c http://phaser.io %c %c ♥%c♥%c♥ ","background: #7a66a3","background: #625186","color: #ffffff; background: #43375b;","background: #625186","background: #ccb9f2","background: #625186"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds.dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),b.x=d.left+h-f,b.y=d.top+g-e,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.getViewport():1===a.nodeType?this.getElementBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},getViewport:function(){return{width:this.viewportWidth,height:this.viewportHeight}},inViewport:function(a,b){var c=this.getElementBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.viewportWidth&&c.left<=this.viewportHeight},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.viewportHeight>this.viewportWidth?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.viewportHeight>this.viewportWidth?d:e}},Object.defineProperty(c.DOM,"scrollX",{get:function(){return window.pageXOffset||document.documentElement.scrollLeft}}),Object.defineProperty(c.DOM,"scrollY",{get:function(){return window.pageYOffset||document.documentElement.scrollTop}}),Object.defineProperty(c.DOM,"viewportWidth",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM,"viewportHeight",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}}),Object.defineProperty(c.DOM,"documentWidth",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM,"documentHeight",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}}),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkInput()},c.Device.LITTLE_ENDIAN=!1,c.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Playstation Vita/.test(a)?this.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?this.kindle=!0:/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1||this.chromeOS)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},_checkInput:function(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.cocoonJS||("onwheel"in window||this.ie&&"WheelEvent"in window?this.wheelEvent="wheel":"onmousewheel"in window?this.wheelEvent="mousewheel":this.firefox&&"MouseScrollEvent"in window&&(this.wheelEvent="DOMMouseScroll"))},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},c.Device.prototype.constructor=c.Device,c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var h=Math.PI/180,i=180/Math.PI;c.Math.degToRad=function(a){return a*h},c.Math.radToDeg=function(a){return a*i},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#"); diff --git a/build/custom/phaser-no-libs.js b/build/custom/phaser-no-libs.js index e3b43b9b3..39913a6ca 100644 --- a/build/custom/phaser-no-libs.js +++ b/build/custom/phaser-no-libs.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Nov 12 2014 22:48:42 +* v2.2.0 "Bethal" - Built: Fri Nov 14 2014 08:15:57 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -50,7 +50,7 @@ */ var Phaser = Phaser || { - VERSION: '2.2.0-RC5', + VERSION: '2.2.0-RC6', GAMES: [], AUTO: 0, @@ -124,11 +124,6 @@ PIXI.InteractionManager = PIXI.InteractionManager || function () {}; // Equally we're going to supress the Pixi console log, with their agreement. PIXI.dontSayHello = true; -// PIXI.Polygon.prototype.type = PIXI.Graphics.POLY; -// PIXI.Rectangle.prototype.type = PIXI.Graphics.RECT; -// PIXI.Circle.prototype.type = PIXI.Graphics.CIRC; -// PIXI.Ellipse.prototype.type = PIXI.Graphics.ELIP; - /** * @author Richard Davey * @copyright 2014 Photon Storm Ltd. @@ -8347,7 +8342,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { get: function () { - return !PIXI.scaleModes.LINEAR; + return PIXI.scaleModes.DEFAULT === PIXI.scaleModes.LINEAR; }, @@ -8355,11 +8350,11 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { if (value) { - PIXI.scaleModes.LINEAR = 0; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.LINEAR; } else { - PIXI.scaleModes.LINEAR = 1; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.NEAREST; } } @@ -13735,13 +13730,13 @@ Phaser.Game.prototype = { if (this.device.chrome) { var args = [ - '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + ' http://phaser.io %c %c \u2665%c\u2665%c\u2665 ', - 'background: #7a66a3', - 'background: #625186', - 'color: #ffffff; background: #43375b;', - 'background: #625186', - 'background: #ccb9f2', - 'background: #625186' + '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + '%c http://phaser.io %c\u2665%c\u2665%c\u2665', + 'background: #3db79f', + 'background: #329582', + 'color: #ffffff; background: #226558;', + 'background: #329582', + 'background: #3db79f', + 'background: #ffffff' ]; for (var i = 0; i < 3; i++) @@ -15299,13 +15294,13 @@ Phaser.Key = function (game, keycode) { this.event = null; /** - * @property {boolean} isDown - The "down" state of the key. + * @property {boolean} isDown - The "down" state of the key. This will remain `true` for as long as the keyboard thinks this key is held down. * @default */ this.isDown = false; /** - * @property {boolean} isUp - The "up" state of the key. + * @property {boolean} isUp - The "up" state of the key. This will remain `true` for as long as the keyboard thinks this key is up. * @default */ this.isUp = true; @@ -15378,10 +15373,28 @@ Phaser.Key = function (game, keycode) { */ this.onUp = new Phaser.Signal(); + /** + * @property {boolean} _justDown - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justDown = false; + + /** + * @property {boolean} _justUp - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justUp = false; + }; Phaser.Key.prototype = { + /** + * Called automatically by Phaser.Keyboard. + * + * @method Phaser.Key#update + * @protected + */ update: function () { if (!this._enabled) { return; } @@ -15401,8 +15414,9 @@ Phaser.Key.prototype = { /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyDown - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyDown: function (event) { @@ -15411,6 +15425,7 @@ Phaser.Key.prototype = { this.event = event; + // exit if this key down is from auto-repeat if (this.isDown) { return; @@ -15426,14 +15441,19 @@ Phaser.Key.prototype = { this.duration = 0; this.repeats = 0; + // _justDown will remain true until it is read via the justDown Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justDown = true; + this.onDown.dispatch(this); }, /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyUp - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyUp: function (event) { @@ -15452,6 +15472,10 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = this.game.time.time - this.timeDown; + // _justUp will remain true until it is read via the justUp Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justUp = true; + this.onUp.dispatch(this); }, @@ -15474,6 +15498,8 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = 0; this._enabled = true; // .enabled causes reset(false) + this._justDown = false; + this._justUp = false; if (hard) { @@ -15486,12 +15512,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just pressed" state of the Key. Just pressed is considered true if the key was pressed down within the duration given. - * @method Phaser.Key#justPressed - * @param {number} [duration=50] - The duration below which the key is considered as being just pressed. - * @return {boolean} True if the key is just pressed otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#downDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just pressed. Given in ms. + * @return {boolean} True if the key was pressed down within the given duration. */ - justPressed: function (duration) { + downDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -15500,12 +15528,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just released" state of the Key. Just released is considered as being true if the key was released within the duration given. - * @method Phaser.Key#justReleased - * @param {number} [duration=50] - The duration below which the key is considered as being just released. - * @return {boolean} True if the key is just released otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#upDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just released. Given in ms. + * @return {boolean} True if the key was released down within the given duration. */ - justReleased: function (duration) { + upDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -15515,9 +15545,54 @@ Phaser.Key.prototype = { }; +/** +* The justDown value allows you to test if this Key has just been pressed down or not. +* When you check this value it will return `true` if the Key is down, otherwise `false`. +* You can only call justDown once per key press. It will only return `true` once, until the Key is released and pressed down again. +* This allows you to use it in situations where you want to check if this key is down without using a Signal, such as in a core game loop. +* +* @property {boolean} justDown +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justDown", { + + get: function () { + + var current = this._justDown; + this._justDown = false; + return current; + + } + +}); + +/** +* The justUp value allows you to test if this Key has just been released or not. +* When you check this value it will return `true` if the Key is up, otherwise `false`. +* You can only call justUp once per key release. It will only return `true` once, until the Key is pressed down and released again. +* This allows you to use it in situations where you want to check if this key is up without using a Signal, such as in a core game loop. +* +* @property {boolean} justUp +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justUp", { + + get: function () { + + var current = this._justUp; + this._justUp = false; + return current; + + } + +}); + /** * An enabled key processes its update and dispatches events. * A key can be disabled momentarily at runtime instead of deleting it. +* * @property {boolean} enabled * @memberof Phaser.Key * @default true @@ -15525,9 +15600,13 @@ Phaser.Key.prototype = { Object.defineProperty(Phaser.Key.prototype, "enabled", { get: function () { + return this._enabled; + }, + set: function (value) { + value = !!value; if (value !== this._enabled) @@ -15536,6 +15615,7 @@ Object.defineProperty(Phaser.Key.prototype, "enabled", { { this.reset(false); } + this._enabled = value; } } @@ -29955,7 +30035,6 @@ Phaser.Button.prototype.removedFromWorld = function () { */ Phaser.Button.prototype.setStateFrame = function (state, frame, switchImmediately) { - var frameKey = '_on' + state + 'Frame'; if (frame != null) // not null or undefined diff --git a/build/custom/phaser-no-libs.min.js b/build/custom/phaser-no-libs.min.js index 0eadd5010..f2bdea0ce 100644 --- a/build/custom/phaser-no-libs.min.js +++ b/build/custom/phaser-no-libs.min.js @@ -1,10 +1,10 @@ /* Phaser (no libs) v2.2.0 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */ -(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC5",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g=a+Math.cos(d)*c,h=b+Math.sin(d)*c,i=this.currentPath.shape.points;if(0===i.length?(this.moveTo(g,h),i=this.currentPath.shape.points):(i[i.length-2]!==g||i[i.length-1]!==h)&&i.push(g,h),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);i.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha -},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this.fillColor=d,this.fillAlpha=e,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this._edge=0,this._position=new c.Point,this.displayObject=null,this.scale=null,this._targetPosition=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target).multiply(this.target.parent?this.target.parent.worldTransform.a:1,this.target.parent?this.target.parent.worldTransform.d:1),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.ArrayList=function(){this.total=0,this.position=0,this.list=[]},c.ArrayList.prototype={add:function(a){return this.exists(a)||(this.list.push(a),this.total++),a},getIndex:function(a){return this.list.indexOf(a)},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),this.total--,a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(c.ArrayList.prototype,"next",{get:function(){return this.positionb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return!PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.LINEAR=a?0:1}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1); -for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation) -}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c http://phaser.io %c %c ♥%c♥%c♥ ","background: #7a66a3","background: #625186","color: #ffffff; background: #43375b;","background: #625186","background: #ccb9f2","background: #625186"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a)) -},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs() +(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g=a+Math.cos(d)*c,h=b+Math.sin(d)*c,i=this.currentPath.shape.points;if(0===i.length?(this.moveTo(g,h),i=this.currentPath.shape.points):(i[i.length-2]!==g||i[i.length-1]!==h)&&i.push(g,h),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);i.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha +},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this.fillColor=d,this.fillAlpha=e,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this._edge=0,this._position=new c.Point,this.displayObject=null,this.scale=null,this._targetPosition=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target).multiply(this.target.parent?this.target.parent.worldTransform.a:1,this.target.parent?this.target.parent.worldTransform.d:1),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.ArrayList=function(){this.total=0,this.position=0,this.list=[]},c.ArrayList.prototype={add:function(a){return this.exists(a)||(this.list.push(a),this.total++),a},getIndex:function(a){return this.list.indexOf(a)},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),this.total--,a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(c.ArrayList.prototype,"next",{get:function(){return this.positionb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g)) +},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement) +}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a)) +},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs() },c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds.dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),b.x=d.left+h-f,b.y=d.top+g-e,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.getViewport():1===a.nodeType?this.getElementBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},getViewport:function(){return{width:this.viewportWidth,height:this.viewportHeight}},inViewport:function(a,b){var c=this.getElementBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.viewportWidth&&c.left<=this.viewportHeight},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.viewportHeight>this.viewportWidth?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.viewportHeight>this.viewportWidth?d:e}},Object.defineProperty(c.DOM,"scrollX",{get:function(){return window.pageXOffset||document.documentElement.scrollLeft}}),Object.defineProperty(c.DOM,"scrollY",{get:function(){return window.pageYOffset||document.documentElement.scrollTop}}),Object.defineProperty(c.DOM,"viewportWidth",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM,"viewportHeight",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}}),Object.defineProperty(c.DOM,"documentWidth",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM,"documentHeight",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}}),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkInput()},c.Device.LITTLE_ENDIAN=!1,c.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Playstation Vita/.test(a)?this.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?this.kindle=!0:/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1||this.chromeOS)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},_checkInput:function(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.cocoonJS||("onwheel"in window||this.ie&&"WheelEvent"in window?this.wheelEvent="wheel":"onmousewheel"in window?this.wheelEvent="mousewheel":this.firefox&&"MouseScrollEvent"in window&&(this.wheelEvent="DOMMouseScroll"))},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},c.Device.prototype.constructor=c.Device,c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var h=Math.PI/180,i=180/Math.PI;c.Math.degToRad=function(a){return a*h},c.Math.radToDeg=function(a){return a*i},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ac;)this._tweens[c].update(this.game.time.now)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b._object===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this._object=a,this.game=b,this._manager=d,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=c.Easing.Default,this._interpolationFunction=c.Math.linearInterpolation,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._paused=!1,this._pausedTime=0,this._codePaused=!1,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1},c.Tween.prototype={to:function(a,b,c,d,e,f,g){b=b||1e3,c=c||null,d=d||!1,e=e||0,f=f||0,g=g||!1,g&&0===f&&(f=1);var h;return this._parent&&this._parent!==this?(h=this._manager.create(this._object),this._lastChild.chain(h),this._lastChild=h):(h=this,this._parent=this,this._lastChild=this),h._repeat=f,h._duration=b,h._valuesEnd=a,null!==c&&(h._easingFunction=c),h._delayTime=e>0?e:0,h._yoyo=g,d?this.start():this},from:function(a,b,c,d,e,f,g){var h={};for(var i in a)h[i]=this._object[i],this._object[i]=a[i];return this.to(h,b,c,d,e,f,g)},start:function(){if(null!==this.game&&null!==this._object){this._manager.add(this),this.isRunning=!0,this._onStartCallbackFired=!1,this._startTime=this.game.time.now+this._delayTime*this.game.time.slowMotion;for(var a in this._valuesEnd){if(Array.isArray(this._valuesEnd[a])){if(0===this._valuesEnd[a].length)continue;this._valuesEnd[a]=[this._object[a]].concat(this._valuesEnd[a])}this._valuesStart[a]=this._object[a],Array.isArray(this._valuesStart[a])||(this._valuesStart[a]*=1),this._valuesStartRepeat[a]=this._valuesStart[a]||0}return this}},generateData:function(a,b){if(null===this.game||null===this._object)return null;this._startTime=0;for(var c in this._valuesEnd){if(Array.isArray(this._valuesEnd[c])){if(0===this._valuesEnd[c].length)continue;this._valuesEnd[c]=[this._object[c]].concat(this._valuesEnd[c])}this._valuesStart[c]=this._object[c],Array.isArray(this._valuesStart[c])||(this._valuesStart[c]*=1),this._valuesStartRepeat[c]=this._valuesStart[c]||0}for(var d=0,e=Math.floor(a*(this._duration/1e3)),f=this._duration/e,g=[];e--;){var c,h=(d-this._startTime)/this._duration;h=h>1?1:h;var i=this._easingFunction(h),j={};for(c in this._valuesEnd){var k=this._valuesStart[c]||0,l=this._valuesEnd[c];l instanceof Array?j[c]=this._interpolationFunction(l,i):"string"==typeof l?l=k+parseFloat(l,10):"number"==typeof l&&(j[c]=k+(l-k)*i)}g.push(j),d+=f}var j={};for(c in this._valuesEnd)j[c]=this._valuesEnd[c];if(g.push(j),this._yoyo){var m=g.slice();m.reverse(),g=g.concat(m)}return"undefined"!=typeof b?b=b.concat(g):g},stop:function(){return this.isRunning=!1,this._onUpdateCallback=null,this._onStartCallbackFired=!1,this._manager.remove(this),this},delay:function(a){return this._delayTime=a,this},repeat:function(a){return this._repeat=a,this},yoyo:function(a){return this._yoyo=a,a&&0===this._repeat&&(this._repeat=1),this},easing:function(a){return this._easingFunction=a,this},interpolation:function(a){return this._interpolationFunction=a,this},chain:function(){return this._chainedTweens=arguments,this},loop:function(){return this._lastChild.chain(this),this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this._codePaused=!0,this._paused=!0,this._pausedTime=this.game.time.now},_pause:function(){this._codePaused||(this._paused=!0,this._pausedTime=this.game.time.now)},resume:function(){this._paused&&(this._paused=!1,this._codePaused=!1,this._startTime+=this.game.time.now-this._pausedTime)},_resume:function(){this._codePaused||(this._startTime+=this.game.time.pauseDuration,this._paused=!1)},update:function(a){if(this.pendingDelete)return!1;if(this._paused||a1?1:c;var d=this._easingFunction(c);for(b in this._valuesEnd){var e=this._valuesStart[b]||0,f=this._valuesEnd[b];f instanceof Array?this._object[b]=this._interpolationFunction(f,d):("string"==typeof f&&(f=e+parseFloat(f,10)),"number"==typeof f&&(this._object[b]=e+(f-e)*d))}if(null!==this._onUpdateCallback&&(this._onUpdateCallback.call(this._onUpdateCallbackContext,this,d),!this.isRunning))return!1;if(1==c){if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(b in this._valuesStartRepeat){if("string"==typeof this._valuesEnd[b]&&(this._valuesStartRepeat[b]=this._valuesStartRepeat[b]+parseFloat(this._valuesEnd[b],10)),this._yoyo){var g=this._valuesStartRepeat[b];this._valuesStartRepeat[b]=this._valuesEnd[b],this._valuesEnd[b]=g}this._valuesStart[b]=this._valuesStartRepeat[b]}return this._yoyo&&(this._reversed=!this._reversed),this._startTime=a+this._delayTime,this.onLoop.dispatch(this._object),!0}this.isRunning=!1,this.onComplete.dispatch(this._object);for(var h=0,i=this._chainedTweens.length;i>h;h++)this._chainedTweens[h].start(a);return!1}return!0}},c.Tween.prototype.constructor=c.Tween,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.pausedTime=0,this.desiredFps=60,this.suggestedFps=null,this._frameCount=0,this._elapsedAccumulator=0,this.slowMotion=1,this.advancedTiming=!1,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.physicsElapsed=0,this.deltaCap=0,this.timeCap=1e3/60,this.frames=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[],this._len=0,this._i=0},c.Time.prototype={boot:function(){this._started=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.deltaCap>0&&this.physicsElapsed>this.deltaCap&&(this.physicsElapsed=this.deltaCap),this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)),!this.game.paused)for(this.events.update(this.time),this._i=0,this._len=this._timers.length;this._i0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0 diff --git a/build/custom/phaser-no-physics.js b/build/custom/phaser-no-physics.js index 5dd38f4e7..0460d88d3 100644 --- a/build/custom/phaser-no-physics.js +++ b/build/custom/phaser-no-physics.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Nov 12 2014 22:48:42 +* v2.2.0 "Bethal" - Built: Fri Nov 14 2014 08:15:58 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -11898,7 +11898,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) */ var Phaser = Phaser || { - VERSION: '2.2.0-RC5', + VERSION: '2.2.0-RC6', GAMES: [], AUTO: 0, @@ -11972,11 +11972,6 @@ PIXI.InteractionManager = PIXI.InteractionManager || function () {}; // Equally we're going to supress the Pixi console log, with their agreement. PIXI.dontSayHello = true; -// PIXI.Polygon.prototype.type = PIXI.Graphics.POLY; -// PIXI.Rectangle.prototype.type = PIXI.Graphics.RECT; -// PIXI.Circle.prototype.type = PIXI.Graphics.CIRC; -// PIXI.Ellipse.prototype.type = PIXI.Graphics.ELIP; - /** * @author Richard Davey * @copyright 2014 Photon Storm Ltd. @@ -20195,7 +20190,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { get: function () { - return !PIXI.scaleModes.LINEAR; + return PIXI.scaleModes.DEFAULT === PIXI.scaleModes.LINEAR; }, @@ -20203,11 +20198,11 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { if (value) { - PIXI.scaleModes.LINEAR = 0; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.LINEAR; } else { - PIXI.scaleModes.LINEAR = 1; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.NEAREST; } } @@ -25583,13 +25578,13 @@ Phaser.Game.prototype = { if (this.device.chrome) { var args = [ - '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + ' http://phaser.io %c %c \u2665%c\u2665%c\u2665 ', - 'background: #7a66a3', - 'background: #625186', - 'color: #ffffff; background: #43375b;', - 'background: #625186', - 'background: #ccb9f2', - 'background: #625186' + '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + '%c http://phaser.io %c\u2665%c\u2665%c\u2665', + 'background: #3db79f', + 'background: #329582', + 'color: #ffffff; background: #226558;', + 'background: #329582', + 'background: #3db79f', + 'background: #ffffff' ]; for (var i = 0; i < 3; i++) @@ -27147,13 +27142,13 @@ Phaser.Key = function (game, keycode) { this.event = null; /** - * @property {boolean} isDown - The "down" state of the key. + * @property {boolean} isDown - The "down" state of the key. This will remain `true` for as long as the keyboard thinks this key is held down. * @default */ this.isDown = false; /** - * @property {boolean} isUp - The "up" state of the key. + * @property {boolean} isUp - The "up" state of the key. This will remain `true` for as long as the keyboard thinks this key is up. * @default */ this.isUp = true; @@ -27226,10 +27221,28 @@ Phaser.Key = function (game, keycode) { */ this.onUp = new Phaser.Signal(); + /** + * @property {boolean} _justDown - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justDown = false; + + /** + * @property {boolean} _justUp - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justUp = false; + }; Phaser.Key.prototype = { + /** + * Called automatically by Phaser.Keyboard. + * + * @method Phaser.Key#update + * @protected + */ update: function () { if (!this._enabled) { return; } @@ -27249,8 +27262,9 @@ Phaser.Key.prototype = { /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyDown - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyDown: function (event) { @@ -27259,6 +27273,7 @@ Phaser.Key.prototype = { this.event = event; + // exit if this key down is from auto-repeat if (this.isDown) { return; @@ -27274,14 +27289,19 @@ Phaser.Key.prototype = { this.duration = 0; this.repeats = 0; + // _justDown will remain true until it is read via the justDown Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justDown = true; + this.onDown.dispatch(this); }, /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyUp - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyUp: function (event) { @@ -27300,6 +27320,10 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = this.game.time.time - this.timeDown; + // _justUp will remain true until it is read via the justUp Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justUp = true; + this.onUp.dispatch(this); }, @@ -27322,6 +27346,8 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = 0; this._enabled = true; // .enabled causes reset(false) + this._justDown = false; + this._justUp = false; if (hard) { @@ -27334,12 +27360,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just pressed" state of the Key. Just pressed is considered true if the key was pressed down within the duration given. - * @method Phaser.Key#justPressed - * @param {number} [duration=50] - The duration below which the key is considered as being just pressed. - * @return {boolean} True if the key is just pressed otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#downDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just pressed. Given in ms. + * @return {boolean} True if the key was pressed down within the given duration. */ - justPressed: function (duration) { + downDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -27348,12 +27376,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just released" state of the Key. Just released is considered as being true if the key was released within the duration given. - * @method Phaser.Key#justReleased - * @param {number} [duration=50] - The duration below which the key is considered as being just released. - * @return {boolean} True if the key is just released otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#upDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just released. Given in ms. + * @return {boolean} True if the key was released down within the given duration. */ - justReleased: function (duration) { + upDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -27363,9 +27393,54 @@ Phaser.Key.prototype = { }; +/** +* The justDown value allows you to test if this Key has just been pressed down or not. +* When you check this value it will return `true` if the Key is down, otherwise `false`. +* You can only call justDown once per key press. It will only return `true` once, until the Key is released and pressed down again. +* This allows you to use it in situations where you want to check if this key is down without using a Signal, such as in a core game loop. +* +* @property {boolean} justDown +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justDown", { + + get: function () { + + var current = this._justDown; + this._justDown = false; + return current; + + } + +}); + +/** +* The justUp value allows you to test if this Key has just been released or not. +* When you check this value it will return `true` if the Key is up, otherwise `false`. +* You can only call justUp once per key release. It will only return `true` once, until the Key is pressed down and released again. +* This allows you to use it in situations where you want to check if this key is up without using a Signal, such as in a core game loop. +* +* @property {boolean} justUp +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justUp", { + + get: function () { + + var current = this._justUp; + this._justUp = false; + return current; + + } + +}); + /** * An enabled key processes its update and dispatches events. * A key can be disabled momentarily at runtime instead of deleting it. +* * @property {boolean} enabled * @memberof Phaser.Key * @default true @@ -27373,9 +27448,13 @@ Phaser.Key.prototype = { Object.defineProperty(Phaser.Key.prototype, "enabled", { get: function () { + return this._enabled; + }, + set: function (value) { + value = !!value; if (value !== this._enabled) @@ -27384,6 +27463,7 @@ Object.defineProperty(Phaser.Key.prototype, "enabled", { { this.reset(false); } + this._enabled = value; } } @@ -41803,7 +41883,6 @@ Phaser.Button.prototype.removedFromWorld = function () { */ Phaser.Button.prototype.setStateFrame = function (state, frame, switchImmediately) { - var frameKey = '_on' + state + 'Frame'; if (frame != null) // not null or undefined diff --git a/build/custom/phaser-no-physics.min.js b/build/custom/phaser-no-physics.min.js index 5fe9965db..804ae78ba 100644 --- a/build/custom/phaser-no-physics.min.js +++ b/build/custom/phaser-no-physics.min.js @@ -2,12 +2,12 @@ (function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.1.0",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.dontSayHello=!1,b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://www.pixijs.com/");b.dontSayHello=!0}},b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),a[0]instanceof b.Point){for(var c=[],d=0,e=a.length;e>d;d++)c.push(a[d].x,a[d].y);a=c}this.closed=!0,this.points=a},b.Polygon.prototype.clone=function(){var a=this.points.slice();return new b.Polygon(a)},b.Polygon.prototype.contains=function(a,b){for(var c=!1,d=this.points.length/2,e=0,f=d-1;d>e;f=e++){var g=this.points[2*e],h=this.points[2*e+1],i=this.points[2*f],j=this.points[2*f+1],k=h>b!=j>b&&(i-g)*(b-h)/(j-h)+g>a;k&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new b.Float32Array(9));var c=this.array;return a?(c[0]=this.a,c[1]=this.b,c[2]=0,c[3]=this.c,c[4]=this.d,c[5]=0,c[6]=this.tx,c[7]=this.ty,c[8]=1):(c[0]=this.a,c[1]=this.c,c[2]=this.tx,c[3]=this.b,c[4]=this.d,c[5]=this.ty,c[6]=0,c[7]=0,c[8]=1),c},b.Matrix.prototype.apply=function(a,c){return c=c||new b.Point,c.x=this.a*a.x+this.c*a.y+this.tx,c.y=this.b*a.x+this.d*a.y+this.ty,c},b.Matrix.prototype.applyInverse=function(a,c){c=c||new b.Point;var d=1/(this.a*this.d+this.c*-this.b);return c.x=this.d*d*a.x+-this.c*d*a.y+(this.ty*this.c-this.tx*this.d)*d,c.y=this.a*d*a.y+-this.b*d*a.x+(-this.ty*this.a+this.tx*this.b)*d,c},b.Matrix.prototype.translate=function(a,b){return this.tx+=a,this.ty+=b,this},b.Matrix.prototype.scale=function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},b.Matrix.prototype.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},b.Matrix.prototype.append=function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},b.Matrix.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},b.identityMatrix=new b.Matrix,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.RoundedRectangle=function(a,b,c,d,e){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0,this.radius=e||20},b.RoundedRectangle.prototype.clone=function(){return new b.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},b.RoundedRectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.RoundedRectangle.prototype.constructor=b.RoundedRectangle,b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(){if(0===this.children.length)return b.EmptyRectangle;for(var a,c,d,e=1/0,f=1/0,g=-1/0,h=-1/0,i=!1,j=0,k=this.children.length;k>j;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.shader=null,a.baseTexture.hasLoaded?this.onTextureUpdate():this.texture.on("update",this.onTextureUpdate.bind(this)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(!(this.visible===!1||0===this.alpha||this.texture.crop.width<=0||this.texture.crop.height<=0)){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var c=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution|0,this.worldTransform.ty*a.resolution|0):a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution,this.worldTransform.ty*a.resolution),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var d=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,e=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)}for(var f=0,g=this.children.length;g>f;f++)this.children[f]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fi;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.wordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},function(a){for(var b=0,c=["ms","moz","webkit","o"],d=0;d>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){return function(a){function b(){for(var d=arguments.length,f=new Array(d);d--;)f[d]=arguments[d];return f=e.concat(f),c.apply(this instanceof b?this:a,f)}var c=this,d=arguments.length-1,e=[];if(d>0)for(e.length=d;d--;)e[d]=arguments[d+1];if("function"!=typeof c)throw new TypeError;return b.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(c.prototype),b}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget={call:function(a){a&&(a=a.prototype||a,b.EventTarget.mixin(a))},mixin:function(a){a.listeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?this._listeners[a].slice():[]},a.emit=a.dispatchEvent=function(a,c){if(this._listeners=this._listeners||{},"object"==typeof a&&(c=a,a=a.type),c&&c.__isEventObject===!0||(c=new b.Event(this,a,c)),this._listeners&&this._listeners[a]){var d,e=this._listeners[a].slice(0),f=e.length,g=e[0];for(d=0;f>d;g=e[++d])if(g.call(this,c),c.stoppedImmediate)return this;if(c.stopped)return this}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{}; var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;"," vColor = vec4(color * aColor.x, aColor.x);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.lastIndex=0,this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[],this.lastIndex=0},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP) }},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.worldAlpha,i=a.tint,j=this.vertices,k=a.anchor.x,l=a.anchor.y;if(b.trim){var m=b.trim;e=m.x-k*m.width,d=e+b.crop.width,g=m.y-l*m.height,f=g+b.crop.height}else d=b.frame.width*(1-k),e=b.frame.width*-k,f=b.frame.height*(1-l),g=b.frame.height*-l;var n=4*this.currentBatchSize*this.vertSize,o=b.baseTexture.resolution,p=a.worldTransform,q=p.a/o,r=p.b/o,s=p.c/o,t=p.d/o,u=p.tx,v=p.ty;j[n++]=q*e+s*g+u,j[n++]=t*g+r*e+v,j[n++]=c.x0,j[n++]=c.y0,j[n++]=h,j[n++]=i,j[n++]=q*d+s*g+u,j[n++]=t*g+r*d+v,j[n++]=c.x1,j[n++]=c.y1,j[n++]=h,j[n++]=i,j[n++]=q*d+s*f+u,j[n++]=t*f+r*d+v,j[n++]=c.x2,j[n++]=c.y2,j[n++]=h,j[n++]=i,j[n++]=q*e+s*f+u,j[n++]=t*f+r*e+v,j[n++]=c.x3,j[n++]=c.y3,j[n++]=h,j[n++]=i,this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.worldAlpha,j=a.tint,k=this.vertices,l=a.width,m=a.height,n=a.anchor.x,o=a.anchor.y,p=l*(1-n),q=l*-n,r=m*(1-o),s=m*-o,t=4*this.currentBatchSize*this.vertSize,u=c.baseTexture.resolution,v=a.worldTransform,w=v.a/u,x=v.b/u,y=v.c/u,z=v.d/u,A=v.tx,B=v.ty;k[t++]=w*q+y*s+A,k[t++]=z*s+x*q+B,k[t++]=d.x0,k[t++]=d.y0,k[t++]=i,k[t++]=j,k[t++]=w*p+y*s+A,k[t++]=z*s+x*p+B,k[t++]=d.x1,k[t++]=d.y1,k[t++]=i,k[t++]=j,k[t++]=w*p+y*r+A,k[t++]=z*r+x*p+B,k[t++]=d.x2,k[t++]=d.y2,k[t++]=i,k[t++]=j,k[t++]=w*q+y*r+A,k[t++]=z*r+x*q+B,k[t++]=d.x3,k[t++]=d.y3,k[t++]=i,k[t++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,2,c.FLOAT,!1,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath(),(g.fillColor||0===g.fillColor)&&(c.globalAlpha=g.fillAlpha*d,c.fillStyle=e="#"+("00000"+(0|g.fillColor).toString(16)).substr(-6),c.fill()),g.lineWidth&&(c.globalAlpha=g.lineAlpha*d,c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath()}}}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.padding=0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var b=a.gl,c=a.projection,d=a.offset,e=a.shaderManager.stripShader;a.blendModeManager.setBlendMode(this.blendMode),b.uniformMatrix3fv(e.translationMatrix,!1,this.worldTransform.toArray(!0)),b.uniform2f(e.projectionVector,c.x,-c.y),b.uniform2f(e.offsetVector,-d.x,-d.y),b.uniform1f(e.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.STATIC_DRAW),b.vertexAttribPointer(e.aVertexPosition,2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.vertexAttribPointer(e.aTextureCoord,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),this.texture.baseTexture._dirty[b.id]?a.renderer.updateTexture(this.texture.baseTexture):b.bindTexture(b.TEXTURE_2D,this.texture.baseTexture._glTextures[b.id]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)):(b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferSubData(b.ARRAY_BUFFER,0,this.verticies),b.vertexAttribPointer(e.aVertexPosition,2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.vertexAttribPointer(e.aTextureCoord,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),this.texture.baseTexture._dirty[b.id]?a.renderer.updateTexture(this.texture.baseTexture):b.bindTexture(b.TEXTURE_2D,this.texture.baseTexture._glTextures[b.id]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),b.drawElements(b.TRIANGLE_STRIP,this.indices.length,b.UNSIGNED_SHORT,0) -},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.b,c.c,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.b,c.c,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5];if(this.padding>0){var p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3)}var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.c*g,f.b*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC5",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.righth;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5];if(this.padding>0){var p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3)}var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.c*g,f.b*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g=a+Math.cos(d)*c,h=b+Math.sin(d)*c,i=this.currentPath.shape.points;if(0===i.length?(this.moveTo(g,h),i=this.currentPath.shape.points):(i[i.length-2]!==g||i[i.length-1]!==h)&&i.push(g,h),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);i.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this.fillColor=d,this.fillAlpha=e,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this._edge=0,this._position=new c.Point,this.displayObject=null,this.scale=null,this._targetPosition=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target).multiply(this.target.parent?this.target.parent.worldTransform.a:1,this.target.parent?this.target.parent.worldTransform.d:1),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.ArrayList=function(){this.total=0,this.position=0,this.list=[]},c.ArrayList.prototype={add:function(a){return this.exists(a)||(this.list.push(a),this.total++),a},getIndex:function(a){return this.list.indexOf(a)},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),this.total--,a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(c.ArrayList.prototype,"next",{get:function(){return this.positionb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return!PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.LINEAR=a?0:1}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c http://phaser.io %c %c ♥%c♥%c♥ ","background: #7a66a3","background: #625186","color: #ffffff; background: #43375b;","background: #625186","background: #ccb9f2","background: #625186"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds.dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),b.x=d.left+h-f,b.y=d.top+g-e,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.getViewport():1===a.nodeType?this.getElementBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},getViewport:function(){return{width:this.viewportWidth,height:this.viewportHeight}},inViewport:function(a,b){var c=this.getElementBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.viewportWidth&&c.left<=this.viewportHeight},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.viewportHeight>this.viewportWidth?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.viewportHeight>this.viewportWidth?d:e}},Object.defineProperty(c.DOM,"scrollX",{get:function(){return window.pageXOffset||document.documentElement.scrollLeft}}),Object.defineProperty(c.DOM,"scrollY",{get:function(){return window.pageYOffset||document.documentElement.scrollTop}}),Object.defineProperty(c.DOM,"viewportWidth",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM,"viewportHeight",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}}),Object.defineProperty(c.DOM,"documentWidth",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM,"documentHeight",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}}),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkInput()},c.Device.LITTLE_ENDIAN=!1,c.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Playstation Vita/.test(a)?this.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?this.kindle=!0:/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1||this.chromeOS)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},_checkInput:function(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.cocoonJS||("onwheel"in window||this.ie&&"WheelEvent"in window?this.wheelEvent="wheel":"onmousewheel"in window?this.wheelEvent="mousewheel":this.firefox&&"MouseScrollEvent"in window&&(this.wheelEvent="DOMMouseScroll"))},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},c.Device.prototype.constructor=c.Device,c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var h=Math.PI/180,i=180/Math.PI;c.Math.degToRad=function(a){return a*h},c.Math.radToDeg=function(a){return a*i},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#"); diff --git a/build/phaser.js b/build/phaser.js index 9c3822bef..7e108d8ce 100644 --- a/build/phaser.js +++ b/build/phaser.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Nov 12 2014 22:48:43 +* v2.2.0 "Bethal" - Built: Fri Nov 14 2014 08:15:58 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -11885,7 +11885,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) * * Phaser - http://phaser.io * -* v2.2.0 "Bethal" - Built: Wed Nov 12 2014 22:48:42 +* v2.2.0 "Bethal" - Built: Fri Nov 14 2014 08:15:57 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -11928,7 +11928,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) */ var Phaser = Phaser || { - VERSION: '2.2.0-RC5', + VERSION: '2.2.0-RC6', GAMES: [], AUTO: 0, @@ -12002,11 +12002,6 @@ PIXI.InteractionManager = PIXI.InteractionManager || function () {}; // Equally we're going to supress the Pixi console log, with their agreement. PIXI.dontSayHello = true; -// PIXI.Polygon.prototype.type = PIXI.Graphics.POLY; -// PIXI.Rectangle.prototype.type = PIXI.Graphics.RECT; -// PIXI.Circle.prototype.type = PIXI.Graphics.CIRC; -// PIXI.Ellipse.prototype.type = PIXI.Graphics.ELIP; - /** * @author Richard Davey * @copyright 2014 Photon Storm Ltd. @@ -20225,7 +20220,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { get: function () { - return !PIXI.scaleModes.LINEAR; + return PIXI.scaleModes.DEFAULT === PIXI.scaleModes.LINEAR; }, @@ -20233,11 +20228,11 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { if (value) { - PIXI.scaleModes.LINEAR = 0; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.LINEAR; } else { - PIXI.scaleModes.LINEAR = 1; + PIXI.scaleModes.DEFAULT = PIXI.scaleModes.NEAREST; } } @@ -25613,13 +25608,13 @@ Phaser.Game.prototype = { if (this.device.chrome) { var args = [ - '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + ' http://phaser.io %c %c \u2665%c\u2665%c\u2665 ', - 'background: #7a66a3', - 'background: #625186', - 'color: #ffffff; background: #43375b;', - 'background: #625186', - 'background: #ccb9f2', - 'background: #625186' + '%c %c %c Phaser v' + v + ' | Pixi.js ' + PIXI.VERSION + ' | ' + r + ' | ' + a + ' %c %c ' + '%c http://phaser.io %c\u2665%c\u2665%c\u2665', + 'background: #3db79f', + 'background: #329582', + 'color: #ffffff; background: #226558;', + 'background: #329582', + 'background: #3db79f', + 'background: #ffffff' ]; for (var i = 0; i < 3; i++) @@ -27177,13 +27172,13 @@ Phaser.Key = function (game, keycode) { this.event = null; /** - * @property {boolean} isDown - The "down" state of the key. + * @property {boolean} isDown - The "down" state of the key. This will remain `true` for as long as the keyboard thinks this key is held down. * @default */ this.isDown = false; /** - * @property {boolean} isUp - The "up" state of the key. + * @property {boolean} isUp - The "up" state of the key. This will remain `true` for as long as the keyboard thinks this key is up. * @default */ this.isUp = true; @@ -27256,10 +27251,28 @@ Phaser.Key = function (game, keycode) { */ this.onUp = new Phaser.Signal(); + /** + * @property {boolean} _justDown - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justDown = false; + + /** + * @property {boolean} _justUp - True if the key has just been pressed (NOTE: requires to be reset, see justDown getter) + * @private + */ + this._justUp = false; + }; Phaser.Key.prototype = { + /** + * Called automatically by Phaser.Keyboard. + * + * @method Phaser.Key#update + * @protected + */ update: function () { if (!this._enabled) { return; } @@ -27279,8 +27292,9 @@ Phaser.Key.prototype = { /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyDown - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyDown: function (event) { @@ -27289,6 +27303,7 @@ Phaser.Key.prototype = { this.event = event; + // exit if this key down is from auto-repeat if (this.isDown) { return; @@ -27304,14 +27319,19 @@ Phaser.Key.prototype = { this.duration = 0; this.repeats = 0; + // _justDown will remain true until it is read via the justDown Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justDown = true; + this.onDown.dispatch(this); }, /** * Called automatically by Phaser.Keyboard. + * * @method Phaser.Key#processKeyUp - * @param {KeyboardEvent} event. + * @param {KeyboardEvent} event - The DOM event that triggered this. * @protected */ processKeyUp: function (event) { @@ -27330,6 +27350,10 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = this.game.time.time - this.timeDown; + // _justUp will remain true until it is read via the justUp Getter + // this enables the game to poll for past presses, or reset it at the start of a new game state + this._justUp = true; + this.onUp.dispatch(this); }, @@ -27352,6 +27376,8 @@ Phaser.Key.prototype = { this.timeUp = this.game.time.time; this.duration = 0; this._enabled = true; // .enabled causes reset(false) + this._justDown = false; + this._justUp = false; if (hard) { @@ -27364,12 +27390,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just pressed" state of the Key. Just pressed is considered true if the key was pressed down within the duration given. - * @method Phaser.Key#justPressed - * @param {number} [duration=50] - The duration below which the key is considered as being just pressed. - * @return {boolean} True if the key is just pressed otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#downDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just pressed. Given in ms. + * @return {boolean} True if the key was pressed down within the given duration. */ - justPressed: function (duration) { + downDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -27378,12 +27406,14 @@ Phaser.Key.prototype = { }, /** - * Returns the "just released" state of the Key. Just released is considered as being true if the key was released within the duration given. - * @method Phaser.Key#justReleased - * @param {number} [duration=50] - The duration below which the key is considered as being just released. - * @return {boolean} True if the key is just released otherwise false. + * Returns `true` if the Key was pressed down within the `duration` value given, or `false` is it either isn't down, + * or was pressed down longer ago than then given duration. + * + * @method Phaser.Key#upDuration + * @param {number} [duration=50] - The duration within which the key is considered as being just released. Given in ms. + * @return {boolean} True if the key was released down within the given duration. */ - justReleased: function (duration) { + upDuration: function (duration) { if (typeof duration === "undefined") { duration = 50; } @@ -27393,9 +27423,54 @@ Phaser.Key.prototype = { }; +/** +* The justDown value allows you to test if this Key has just been pressed down or not. +* When you check this value it will return `true` if the Key is down, otherwise `false`. +* You can only call justDown once per key press. It will only return `true` once, until the Key is released and pressed down again. +* This allows you to use it in situations where you want to check if this key is down without using a Signal, such as in a core game loop. +* +* @property {boolean} justDown +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justDown", { + + get: function () { + + var current = this._justDown; + this._justDown = false; + return current; + + } + +}); + +/** +* The justUp value allows you to test if this Key has just been released or not. +* When you check this value it will return `true` if the Key is up, otherwise `false`. +* You can only call justUp once per key release. It will only return `true` once, until the Key is pressed down and released again. +* This allows you to use it in situations where you want to check if this key is up without using a Signal, such as in a core game loop. +* +* @property {boolean} justUp +* @memberof Phaser.Key +* @default false +*/ +Object.defineProperty(Phaser.Key.prototype, "justUp", { + + get: function () { + + var current = this._justUp; + this._justUp = false; + return current; + + } + +}); + /** * An enabled key processes its update and dispatches events. * A key can be disabled momentarily at runtime instead of deleting it. +* * @property {boolean} enabled * @memberof Phaser.Key * @default true @@ -27403,9 +27478,13 @@ Phaser.Key.prototype = { Object.defineProperty(Phaser.Key.prototype, "enabled", { get: function () { + return this._enabled; + }, + set: function (value) { + value = !!value; if (value !== this._enabled) @@ -27414,6 +27493,7 @@ Object.defineProperty(Phaser.Key.prototype, "enabled", { { this.reset(false); } + this._enabled = value; } } @@ -41833,7 +41913,6 @@ Phaser.Button.prototype.removedFromWorld = function () { */ Phaser.Button.prototype.setStateFrame = function (state, frame, switchImmediately) { - var frameKey = '_on' + state + 'Frame'; if (frame != null) // not null or undefined diff --git a/build/phaser.map b/build/phaser.map index b4b258122..06ce7e78a 100644 --- a/build/phaser.map +++ b/build/phaser.map @@ -1 +1 @@ -{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","blendModes","NORMAL","ADD","MULTIPLY","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","scaleModes","DEFAULT","LINEAR","NEAREST","_UID","Float32Array","Uint16Array","Array","INTERACTION_FREQUENCY","AUTO_PREVENT_DEFAULT","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","dontSayHello","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","sayHello","type","navigator","userAgent","toLowerCase","indexOf","args","console","log","apply","window","Polygon","points","prototype","slice","call","arguments","Point","p","i","il","length","push","x","y","closed","clone","contains","inside","j","xi","yi","xj","yj","intersect","constructor","Matrix","a","b","c","d","tx","ty","fromArray","array","toArray","transpose","pos","newPos","applyInverse","id","translate","scale","rotate","angle","cos","sin","a1","c1","tx1","append","matrix","b1","d1","identity","identityMatrix","Rectangle","width","height","x1","y1","EmptyRectangle","RoundedRectangle","radius","DisplayObject","position","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","buttonMode","renderable","parent","stage","worldAlpha","_interactive","defaultCursor","worldTransform","_sr","_cr","filterArea","_bounds","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","Object","defineProperty","get","set","value","dirty","item","isMask","_filters","passes","filterPasses","_filterBlock","target","_generateCachedSprite","_destroyCachedSprite","updateTransform","pt","wt","rotationCache","displayObjectUpdateTransform","getBounds","getLocalBounds","setStageReference","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","_tempMatrix","render","updateCache","toGlobal","toLocal","from","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","destroy","DisplayObjectContainer","children","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","tint","blendMode","shader","baseTexture","hasLoaded","onTextureUpdate","on","bind","frame","setTexture","cachedTint","w0","w1","h0","h1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","valid","globalAlpha","roundPixels","setTransform","smoothProperty","dx","trim","dy","tintedTexture","CanvasTinter","getTintedTexture","drawImage","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","Texture","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","shaderManager","setShader","fastShader","transform","isRotated","childTransform","FilterBlock","Text","text","style","canvas","document","createElement","getContext","fromCanvas","setText","setStyle","updateText","font","fill","align","stroke","strokeThickness","wordWrap","wordWrapWidth","dropShadow","dropShadowAngle","dropShadowDistance","dropShadowColor","toString","outputText","lines","split","lineWidths","maxLineWidth","fontProperties","determineFontProperties","lineWidth","measureText","max","lineHeight","fontSize","isCocoonJS","clearRect","strokeStyle","textBaseline","linePositionX","linePositionY","fillStyle","xShadowOffset","yShadowOffset","ascent","fillText","strokeText","updateTexture","fontStyle","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","ceil","baseline","fillRect","imagedata","getImageData","data","pixels","line","idx","descent","result","spaceLeft","words","wordWidth","wordWidthWithSpace","destroyBaseTexture","BitmapText","textWidth","textHeight","_pool","fontName","parseInt","fonts","size","prevCharCode","chars","charCode","charCodeAt","test","charAt","charData","kerning","xOffset","yOffset","xAdvance","lineAlignOffsets","alignOffset","lenChildren","lenChars","pop","Stage","backgroundColor","interactive","interactionManager","InteractionManager","setBackgroundColor","setInteractionDelegate","domElement","setTargetDomElement","update","backgroundColorSplit","hex2rgb","hex","substr","backgroundColorString","getMousePosition","mouse","global","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","Date","getTime","timeToCall","setTimeout","clearTimeout","requestAnimFrame","rgb2hex","rgb","Function","thisArg","bound","boundArgs","concat","TypeError","F","proto","AjaxRequest","activexmodes","ActiveXObject","XMLHttpRequest","e","canUseNewCanvasBlendModes","getNextPowerOfTwo","number","EventTarget","obj","mixin","listeners","eventName","_listeners","emit","dispatchEvent","__isEventObject","Event","fn","stoppedImmediate","stopped","addEventListener","once","onceHandlerWrapper","self","off","_originalHandler","removeEventListener","list","removeAllListeners","name","content","timeStamp","now","stopPropagation","stopImmediatePropagation","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","vi","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","u","v","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","src","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","z","w","_dirty","instances","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","WebGLGraphics","renderGraphics","graphics","webGLData","projection","offset","primitiveShader","updateGraphics","webGL","_webGL","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","uniform2f","uniform3fv","uniform1f","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","shape","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","triangles","fromX","fromY","cpX","cpY","toX","toY","getPt","n1","n2","perc","diff","xa","ya","xb","yb","circleData","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","sqrt","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","contextLostBound","handleContextLost","contextRestoredBound","handleContextRestored","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","setContext","contextLost","__stage","removeEvents","_interactiveEventsAdded","setTarget","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","_powerOf2","event","preventDefault","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","SRC_ALPHA","DST_ALPHA","DST_COLOR","blendModeWebGL","blendFunc","maskData","stencilStack","reverse","count","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","EQUAL","DECR","INCR","_currentGraphics","complexPrimitiveShader","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","numVerts","numIndices","vertices","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","verticies","aX","aY","x0","y0","renderTilingSprite","tilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","temp","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","roundColor","stringColor","tintCache","tintMethod","convertTintToImage","tintImage","Image","toDataURL","tintWithMultiply","tintWithOverlay","tintWithPerPixel","rgbValues","pixelData","putImageData","step","cacheStepsPerColorChannel","min","canUseMultiply","CanvasRenderer","refresh","screencanvas","removeView","beginPath","moveTo","lineTo","closePath","strokeRect","arc","h","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","quadraticCurveTo","len","rect","pts","Strip","colors","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","strip","centerX","centerY","normX","normY","u0","u1","u2","v0","v1","v2","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","updateFrame","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","refreshTexture","generateTilingTexture","needsUpdate","updateWebGLTexture","__tilePattern","createPattern","forcePowerOfTwo","targetWidth","targetHeight","originalTexture","isFrame","newTextureRequired","canvasBuffer","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","scope","onload","onerror","imageUrl","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","TextureCacheIdGenerator","FrameCache","noFrame","requiresUpdate","setFrame","onBaseTextureLoaded","onLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","emptyTexture","textureBuffer","renderWebGL","renderCanvas","updateBase","realResolution","getImage","getBase64","getCanvas","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","tempMatrix","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","Phaser","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","Utils","getProperty","prop","parts","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","transposeArray","ArrayUtils","transposeMatrix","rotateArray","direction","rotateMatrix","shuffle","parseDimension","dimension","f","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","extend","copy","copyIsArray","deep","isArray","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","distance","round","output","circumferencePoint","asDegrees","out","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","atan2","angleSq","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","floor","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","requiredAngle","centroid","pointslength","parse","xProp","yProp","centerOn","floorAll","inflate","containsRect","intersection","tolerance","intersectsRaw","union","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","xMax","Number","MIN_VALUE","xMin","MAX_VALUE","yMax","yMin","forEach","Line","fromSprite","startSprite","endSprite","useCenter","center","asSegment","intersectsPoints","pointOnLine","pointOnSegment","coordinatesOnLine","stepRate","results","sx","sy","err","e2","uc","ua","ub","Ellipse","normx","normy","area","_points","ix","iy","jx","jy","calculateArea","p1","p2","avgHeight","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","destroyCachedSprite","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","startX","startY","sweep","segs","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","filling","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","updateLocalBounds","cachedSprite","GraphicsData","Camera","game","world","screenView","deadzone","roundPx","atLimit","_edge","_position","_targetPosition","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","paused","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","onLoadComplete","loadComplete","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","preUpdate","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","removeAll","debug","warn","link","unlink","getCurrentState","preRender","renderType","LinkedList","next","prev","first","callAll","entity","ArrayList","exists","getIndex","setAll","Signal","_bindings","_prevParams","dispatch","memorize","_shouldPropagate","active","validateListener","listener","fnName","replace","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","disableVisibilityChange","currentRenderOrderID","_hiddenVar","_backgroundColor","config","parseConfig","DOM","getOffset","_this","_onChange","visibilityChange","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","onpagehide","onpageshow","onblur","onfocus","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","alive","ignoreDestroy","classType","cursor","cameraOffset","enableBodyDebug","onDestroy","_sortProperty","_cache","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","events","onAddedToGroup","addMultiple","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","previous","swap","child1","bringToTop","sendToBack","moveUp","moveDown","xy","oldChild","newChild","onRemovedFromGroup","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","method","methodLength","contextLength","renderOrderID","predicate","checkExists","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","getRandomItem","destroyPhase","removeBetween","destroyChildren","soft","World","_definedSize","setBounds","wrap","useBounds","horizontal","vertical","integerInRange","FlexGrid","manager","boundsCustom","boundsFluid","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFluidInversed","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","multiplier","layers","createCustomLayer","addToWorld","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","onResize","fitSprite","scaleSprite","geom","uuid","grid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","maxIterations","enterLandscape","enterPortrait","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","createFullScreenTarget","fsTarget","margin","background","_createdFullScreenTarget","enterFullScreen","leaveFullScreen","fullScreenFailed","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","showAllCanExpand","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_fullScreenRestore","_gameSize","_userScaleFactor","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_lastReportedCanvasSize","_lastReportedGameSize","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","fullscreen","cocoonJS","iPad","webApp","desktop","android","chrome","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","fullScreenScaleMode","getElementById","getParentBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","setScreenSize","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","recheckOrientation","previousOrientation","changed","isLandscape","wasIncorrect","incorrectNow","isPortrait","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","setShowAll","resetCanvas","reflowCanvas","outerWidth","outerHeight","clientRect","getBoundingClientRect","wc","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","startFullScreen","allowTrampoline","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","elementBounds","element","cushion","aspect","object","getAspectRatio","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","checkResize","checkOrientation","checkOrientationState","Game","physicsConfig","isRunning","raf","net","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","_deltaTime","_lastCount","_spiralling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","_onBoot","readyState","cordova","seed","body","Device","setUpRenderer","checkFullScreenSupport","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","webAudio","addToDOM","updateRender","slowMotion","desiredFps","slowStep","elapsed","updateLogic","timeStep","elapsedTime","enableStep","disableStep","removeFromDOM","setMute","unsetMute","hitCanvas","hitContext","moveCallbacks","moveCallback","moveCallbackContext","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","currentPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","addPointer","Mouse","Keyboard","Touch","MSPointer","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","processClickTrampolines","Key","keycode","_enabled","isDown","isUp","altKey","ctrlKey","shiftKey","timeDown","duration","timeUp","repeats","keyCode","onHoldCallback","onHoldContext","processKeyDown","processKeyUp","justPressed","justReleased","pressEvent","onDownCallback","onPressCallback","onUpCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","addCallbacks","onPress","addKey","addKeyCapture","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","A","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","UNDERSCORE","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","INSERT","DELETE","HELP","NUM_LOCK","PLUS","MINUS","mouseDownCallback","mouseMoveCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","withinGame","bindEvent","deltaY","requestPointerLock","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","changedTouches","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","callbacks","onConnect","onDisconnect","onAxis","onFloat","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","buttonCode","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","buttons","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","GamepadButton","disconnectingIndex","axis","axisCode","buttonValue","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","addedToGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","startDrag","stopDrag","globalToLocalX","_dragPoint","dragOffset","globalToLocalY","fixedToCamera","checkBoundsRect","checkBoundsSprite","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","dragFromCenter","disableDrag","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","camerOffset","Events","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onAnimationStart","onAnimationComplete","onAnimationLoop","existing","group","tween","physicsGroup","audio","loop","audioSprite","addSprite","tileSprite","rope","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","characterWidth","characterHeight","charsPerRow","xSpacing","ySpacing","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","bitmapData","BitmapData","addBitmapData","Tween","ctx","imageData","Uint32Array","ArrayBuffer","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","_anchor","_tempR","_tempG","_tempB","_circle","loadTexture","draw","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","anchorX","anchorY","copyRect","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","animations","AnimationManager","checkTransform","autoCull","health","lifespan","checkWorldBounds","outOfBoundsKill","cropRect","scaleMin","scaleMax","_crop","_frame","kill","stopAnimation","getFrameData","loadFrameData","checkImageKey","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","updateCrop","resetFrame","cw","ch","revive","damage","_outOfBoundsFired","play","frameRate","killOnComplete","overlap","setScaleMinMax","wrapAngle","frameName","P2JS","removeFromWorld","phase","_reset","frameData","getFrame","_frameName","getFrameByName","_scroll","physicsElapsed","autoScroll","stopScroll","safeRemove","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_text","_font","_fontSize","_fontWeight","_lineSpacing","_charCount","setShadow","runWordWrap","lineCap","lineJoin","updateLine","letter","clearColors","addColor","parseFloat","_align","_tint","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","inputEnabled","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","characterSpacing","lineSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","box","clientTop","clientLeft","scrollLeft","compatMode","pageYOffset","pageXOffset","calibrate","coords","getViewport","getElementBounds","viewportWidth","viewportHeight","inViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","matches","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","iOS","node","nodeWebkit","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","epiphany","firefox","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","_checkOS","_checkAudio","_checkBrowser","_checkCSS3D","_checkDevice","_checkFeatures","_checkInput","vita","kindle","getItem","error","WebGLRenderingContext","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","maxTouchPoints","msPointerEnabled","pointerEnabled","fs","cfs","RegExp","$1","$3","process","require","audioElement","canPlayType","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","t","getComputedStyle","getPropertyValue","canPlayAudio","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","match","forceSetTimeOut","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","truncate","trunc","shear","snapTo","gap","snapToFloor","snapToCeil","snapToInArray","arr","findClosest","roundTo","place","base","pow","floorTo","ceilTo","interpolateFloat","weight","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","normalizeLatitude","lat","normalizeLongitude","lng","numberArray","numberArrayStep","maxAdd","minSub","wrapValue","randomSign","isOdd","isEven","minProperty","maxProperty","radians","angleLimit","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","objects","removeRandom","removeRandomItem","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","shuffleArray","distancePow","distanceRounded","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","s1","s2","sow","hash","integer","frac","realInRange","between","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","url","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","_pauseAll","_resumeAll","getAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_object","_pause","_resume","pauseAll","resumeAll","_valuesStart","_valuesEnd","_valuesStartRepeat","_duration","_repeat","_yoyo","_reversed","_delayTime","_startTime","_easingFunction","Easing","Default","_interpolationFunction","_chainedTweens","_onStartCallbackFired","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","onStart","onLoop","onComplete","ease","yoyo","_parent","_lastChild","chain","generateData","tick","blob","reversed","times","easing","interpolation","pauseDuration","isFinite","tmp","numChainedTweens","Linear","None","Quadratic","In","Out","InOut","Cubic","Quartic","Quintic","Sinusoidal","Exponential","Circular","Elastic","asin","Back","Bounce","prevTime","pausedTime","suggestedFps","_frameCount","_elapsedAccumulator","advancedTiming","fps","fpsMin","fpsMax","msMin","msMax","deltaCap","timeCap","timeExpected","Timer","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","Animation","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","_frameIndex","isPaused","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","useLocalFrameIndex","frameIndex","dispatchComplete","generateFrameNames","prefix","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","img","row","column","JSONData","json","cacheKey","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_canvases","_images","_textures","_sounds","_json","_xml","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","_urlMap","_urlResolver","_urlTemp","addDefaultImage","addMissingImage","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","addCanvas","addBinary","binaryData","addSpriteSheet","_resolveURL","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","TEXTURE_ATLAS_XML_STARLING","addBitmapFont","xmlData","LoaderParser","bitmapFont","addPhysicsData","addText","addJSON","addXML","addImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","getBitmapData","getBitmapFont","getPhysicsData","fixtureKey","fixtures","fixture","checkKey","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkURL","getTilemapData","map","getFrameByIndex","getTextureFrame","getRenderTexture","getTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getFrameCount","getText","getJSON","getXML","getBinary","getURL","getUrl","getKeys","removeCanvas","removeImage","removeFromPixi","removeSound","removeText","removeJSON","removeXML","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","baseURL","isLoading","progress","progressFloat","preloadSprite","onLoadStart","onFileStart","onFileComplete","onFileError","onPackComplete","useXDomainRequest","_packList","_packIndex","_fileList","_fileIndex","_progressChunk","_xhr","_ajax","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","getAsset","addToFileList","entry","loaded","replaceInFileList","pack","overwrite","script","binary","spritesheet","urls","autoDecode","audiosprite","atlasURL","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","xmlURL","domparser","DOMParser","parseFromString","async","loadXML","atlasJSONArray","atlas","atlasJSONHash","atlasXML","removeFile","loadPack","beginLoad","loadFile","packLoadComplete","xhrLoad","responseText","nextPack","packError","success","totalLoadedPacks","fileComplete","fileError","getAudioURL","usingWebAudio","usingAudioTag","Audio","XDomainRequest","timeout","dataLoadError","ontimeout","onprogress","jsonLoadComplete","open","send","responseType","extension","lastIndexOf","nextFile","loadNext","response","that","decodeAudioData","onSoundDecode","language","defer","head","csvLoadComplete","xmlLoadComplete","previousIndex","totalLoadedFiles","info","common","getAttribute","letters","textureRect","kernings","second","autoplayKey","autoplay","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","startTime","currentTime","durationMS","stopTime","pausedPosition","currentMarker","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","masterGain","createGain","createGainNode","gain","_sound","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","isDecoded","forceRestart","noteOff","createBufferSource","noteGrainOn","decode","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","_codeMuted","_unlockSource","noAudio","channels","fakeiOSTouchLock","unlock","disableAudio","disableWebAudio","noteOn","stopAll","soundData","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","randomIndex","NaN","low","high","POSITIVE_INFINITY","bmd","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","inCamera","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","arcade","ninja","chipmunk","CHIPMUNK","P2","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","TILE_BIAS","forceX","skipQuadTree","_overlap","_maxOverlap","_velocity1","_velocity2","_newVelocity1","_newVelocity2","_average","_mapData","_result","_total","_angle","updateMotion","_velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","_drag","object1","object2","overlapCallback","processCallback","collideHandler","len2","collide","collideCallback","len1","overlapOnly","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","collideGroupVsSelf","sprite1","sprite2","separate","_potentials","group1","group2","tilemapLayer","getTiles","tilePadding","separateTile","body1","body2","separateX","separateY","immovable","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","mass","deltaAbsY","overlapY","customSeparateY","moves","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","blocked","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","sourceWidth","sourceHeight","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","_sx","_sy","updateBounds","asx","asy","onFloor","onWall","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_explode","emitParticle","makeParticles","keys","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","setScale","at","Tile","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","tiles","collideIndexes","collision","images","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","gid","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","TilemapLayer","indexes","bodies","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","scrollX","scrollY","renderWidth","renderHeight","_scrollX","_scrollY","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","shiftCanvas","copyW","copyH","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","tilewidth","tileheight","opacity","firstgid","tileproperties","tileProperties","imageheight","imagewidth","polyline","polygon","ellipse","sid","drawCoords","coordIndex","updateTileData","setSpacing",1,"PcZj9L","Buffer","subject","encoding","stringtrim","coerce","byteLength","buf","augment","xUint8Array","isBuffer","isArrayIsh","readUInt8","write","_hexWrite","string","remaining","strLen","byte","_charsWritten","_utf8Write","blitBuffer","utf8ToBytes","_asciiWrite","asciiToBytes","_binaryWrite","_base64Write","base64ToBytes","BufferWrite","BufferToString","ProxyBuffer","_proxy","_hexSlice","_utf8Slice","_asciiSlice","_binarySlice","_base64Slice","BufferToJSON","BufferCopy","target_start","bytes","fromByteArray","decodeUtf8Char","ret","toHex","BufferSlice","BufferReadUInt8","noAssert","assert","_readUInt16","dv","xDataView","xArrayBuffer","setUint8","getUint16","_dataview","BufferReadUInt16LE","BufferReadUInt16BE","_readUInt32","getUint32","BufferReadUInt32LE","BufferReadUInt32BE","BufferReadInt8","getInt8","_readInt16","getInt16","BufferReadInt16LE","BufferReadInt16BE","_readInt32","getInt32","BufferReadInt32LE","BufferReadInt32BE","_readFloat","getFloat32","BufferReadFloatLE","BufferReadFloatBE","_readDouble","getFloat64","BufferReadDoubleLE","BufferReadDoubleBE","BufferWriteUInt8","verifuint","_writeUInt16","setUint16","getUint8","BufferWriteUInt16LE","BufferWriteUInt16BE","_writeUInt32","setUint32","BufferWriteUInt32LE","BufferWriteUInt32BE","BufferWriteInt8","verifsint","setInt8","_writeInt16","setInt16","BufferWriteInt16LE","BufferWriteInt16BE","_writeInt32","setInt32","BufferWriteInt32LE","BufferWriteInt32BE","_writeFloat","verifIEEE754","setFloat32","BufferWriteFloatLE","BufferWriteFloatBE","_writeDouble","setFloat64","BufferWriteDoubleLE","BufferWriteDoubleBE","BufferFill","BufferInspect","INSPECT_MAX_BYTES","BufferToArrayBuffer","_browserSupport","foo","_arr","byteOffset","browserSupport","toLocaleString","toJSON","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","inspect","toArrayBuffer","_isBuffer","proxyBuffer","proxy","Proxy","ProxyHandler","defaultValue","byteArray","encodeURIComponent","toByteArray","dst","message","TA","DataView","SlowBuffer","poolSize","isEncoding","totalLength","base64-js","typedarray","native-buffer-browserify",3,"b64ToByteArray","b64","placeHolders","lookup","uint8ToBase64","uint8","tripletToBase64","extraBytes",4,"configureProperties","getOwnPropertyNames","props","writable","enumerable","configurable","makeArrayAccessors","makeArrayAccessor","_getter","_setter","MAX_ARRAY_LENGTH","RangeError","as_signed","bits","as_unsigned","packI8","unpackI8","packU8","unpackU8","packU8Clamped","packI16","unpackI16","packU16","unpackU16","packI32","unpackI32","packU32","unpackU32","packIEEE754","ebits","fbits","roundToEven","bias","LN2","unpackIEEE754","unpackF64","packF64","unpackF32","packF32","ECMAScript","opts","ophop","Class","HasProperty","HasOwnProperty","IsCallable","ToInt32","ToUint32","desc","__defineGetter__","__defineSetter__","makeConstructor","bytesPerElement","unpack","ctor","sequence","BYTES_PER_ELEMENT","ArrayBufferView","_pack","_unpack","SyntaxError","_bytes","Int16Array","Float64Array","makeGetter","arrayType","uint8Array","Boolean","IS_BIG_ENDIAN","makeSetter","byteView","typeArray","u16array","u8array",2,"canSetImmediate","setImmediate","canPost","postMessage","queue","ev","title","browser","env","argv","cwd","chdir","Scalar","lineInt","l1","l2","precision","det","eq","segmentsIntersect","q1","q2","da","db","./Scalar","__browserify_Buffer","__browserify_process","leftOn","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","bc","magA","magB","acos","sqdist",5,"getIntersectionPoint","poly","makeCCW","br","isReflex","tmpLine1","tmpLine2","canSee","targetPoly","getCutEdges","tmp1","tmp2","tmpPoly","nDiags","decomp","edges","cutEdges","polys","cutEdge","isSimple","quickDecomp","reflexVertices","steinerPoints","maxlevel","upperInt","lowerInt","upperDist","lowerDist","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","removeCollinearPoints","./Line","./Point",6,7,"./Polygon",8,"description","author","keywords","main","engines","repository","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp",9,"AABB","lowerBound","vec2","upperBound","setFromPoints","skinSize","cosAngle","sinAngle","overlaps","../math/vec2","../utils/Utils",10,"Broadphase","boundingVolumeType","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","STATIC","KINEMATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",11,"GridBroadphase","defaults","xmin","ymin","nx","ny","binsizeX","binsizeY","Ncolliding","bins","Nbins","xmult","ymult","bi","lowerX","lowerY","upperX","upperY","xi1","yi1","xi2","yi2","bin","NbodiesInBin","bj","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane",12,"NaiveBroadphase","../shapes/Shape",13,"Narrowphase","contactEquations","frictionEquations","enableFriction","slipForce","frictionCoefficient","surfaceVelocity","reuseObjects","reusableContactEquations","reusableFrictionEquations","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","pic_r1","lastCross","crossLength","ContactEquation","FrictionEquation","Convex","Shape","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","collidedLastStep","id1","id2","eqs","ce","fe","rfe","rce","appendArray","createContactEquation","shapeA","shapeB","firstImpact","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","RECTANGLE","lineRectangle","rectangleBody","rectangleShape","rectangleOffset","rectangleAngle","convexCapsule_tempRect","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","ai","sj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","lineLine","positionA","angleA","positionB","angleB","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","particleBody","particleShape","particlePosition","particleAngle","circleLine","CIRCLE","circleBody","circleShape","circleOffset","circleAngle","lineRadius","circleRadius","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","radiusSum","pos0","pos1","circleCapsule","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","convexToparticle","minEdgeNormal","offsetA","offsetB","radiusA","radiusB","planeConvex","numReported","particlePlane","circleParticle","planeCapsule_tmpCircle","planeCapsule_tmp1","planeCapsule_tmp2","planeCapsule","capsuleOffset","end1","end2","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","edge","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","elementWidth","minCandidateNormal","idxA","idxB","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Convex","../shapes/Rectangle","../utils/TupleDictionary",14,"SAPBroadphase","axisList","axisIndex","_addBodyHandler","_removeBodyHandler","sortAxisList","aabbNeedsUpdate","updateAABB",15,"Constraint","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",16,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",17,"GearConstraint","AngleLockEquation","setMaxTorque","maxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",18,"LockConstraint","localAngleB","rot","localOffsetB","xAxis",19,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","upperLimitEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vj","wi","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",20,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","getMotorSpeed","../equations/RotationalVelocityEquation",21,"./Equation",22,"computeB","GW","Gq","GiMf","computeGiMf",23,"ARRAY_TYPE","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",24,"getSlipForce",25,"worldVectorA","worldVectorB",26,27,"EventEmitter","listenerArray",28,"ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material",29,30,"GetArea",31,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","mul","div","squaredDistance","sqrDist","sqrLen","negate",32,"_idCounter","shapes","shapeOffsets","shapeAngles","invMass","inertia","invInertia","fixedRotation","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","timeLastSleepy","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","Icm","computeMomentOfInertia","Body_applyForce_r","applyForce","rotForce","toWorldFrame","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","idleTime","wakeUpEvent","sleep","sleepEvent","sleepTick","dontSleep","speedSquared","speedLimitSquared","SLEEPY","getVelocityFromPosition","store","getAngularVelocityFromPosition","overlapKeeper","bodiesAreOverlapping","sleepyEvent","../collision/AABB","../events/EventEmitter",33,"LinearSpring","Spring","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","worldDistance","restLength","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f","./Spring",34,"RotationalSpring","restAngle",35,36,"Capsule","GSSolver","Heightfield","Plane","Solver","../package.json","./collision/AABB","./collision/Broadphase","./collision/GridBroadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/LinearSpring","./objects/RotationalSpring","./objects/Spring","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Rectangle","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/Utils","./world/World",37,"updateArea","./Shape",38,39,"polyk","tmpVec1","tmpVec2","projectOntoLocalAxis","projectOntoWorldAxis","shapeOffset","shapeAngle","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","numer","../math/polyk",40,"maxValue","minValue",41,42,43,44,"./Convex",45,"collisionGroup","collisionMask","material","sensor",46,"GS","iterations","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","solve","sortEquations","iter","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","addEquation","removeEquation","ISLAND",48,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","tmpDict","tmpArray1","OverlapKeeperRecord","lastObject","getByKey","currentObject","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./TupleDictionary","./Utils",49,"getKey","dict",50,"howmany",51,"Island","bodyIds",52,"IslandManager","_nodePool","_islandPool","islands","IslandNode","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","neighbors","ni","nj","./Island","./IslandNode",53,54,"springs","disabledBodyCollisionPairs","solver","narrowphase","islandManager","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","doProfiling","lastStepTime","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","bodiesToBeRemoved","fixedStepTime","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","performance","nowOffset","timing","navigationStart","BODY_SLEEPING","ISLAND_SLEEPING","addConstraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","removeConstraint","step_mg","xiw","xjw","interpvelo","timeSinceLastCalled","maxSubSteps","internalStep","internalSteps","t0","h_div_dt","endOverlaps","t1","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","Nshapesi","Nshapesj","runNarrowphase","integrateBody","removeBody","ib_fhMinv","ib_velodt","minv","velo","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","removeSpring","addBody","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","fromJSON","hitTest_tmp1","hitTest_zero","hitTest_tmp2","pb","ps","pa","zero","NS","setGlobalEquationParameters","parameters","setGlobalStiffness","setGlobalRelaxation","../../package.json","../collision/NaiveBroadphase","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/Constraint","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/LinearSpring","../objects/RotationalSpring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager","useElapsedTime","materials","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","constraint","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","clearTilemapLayerBodies","convertTilemap","optimize","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","flatten","getFixtureByKey","getGroup","groupID","_ref","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","_groupCallbacksContext","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","resetDamping","resetMass","clearShapes","shapeChanged","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","updateSpriteTransform","vrot","_j","_ref1","randomPastelHex","drawConvex","drawPlane","drawLine","drawRectangle","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex"],"mappings":";;CAkCA,WAEI,GAAIA,GAAOC,KASXC,EAAOA,KAOXA,GAAKC,eAAiB,EACtBD,EAAKE,gBAAkB,EAGvBF,EAAKG,QAAU,SAIfH,EAAKI,YACDC,OAAO,EACPC,IAAI,EACJC,SAAS,EACTC,OAAO,EACPC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,YAAY,EACZC,WAAW,EACXC,WAAW,EACXC,WAAW,GACXC,WAAW,GACXC,UAAU,GACVC,IAAI,GACJC,WAAW,GACXC,MAAM,GACNC,WAAW,IAIfrB,EAAKsB,YACDC,QAAQ,EACRC,OAAO,EACPC,QAAQ,GAIZzB,EAAK0B,KAAO,EAEe,mBAAlB,eAEL1B,EAAK2B,aAAeA,aACpB3B,EAAK4B,YAAcA,cAInB5B,EAAK2B,aAAeE,MACpB7B,EAAK4B,YAAcC,OAIvB7B,EAAK8B,sBAAwB,GAC7B9B,EAAK+B,sBAAuB,EAE5B/B,EAAKgC,KAAiB,EAAVC,KAAKC,GACjBlC,EAAKmC,WAAa,IAAMF,KAAKC,GAC7BlC,EAAKoC,WAAaH,KAAKC,GAAK,IAE5BlC,EAAKqC,cAAgB,MAGrBrC,EAAKsC,cAAe,EAGpBtC,EAAKuC,sBACDC,KAAK,KACLC,aAAY,EACZC,WAAU,EACVC,uBAAsB,EACtBC,WAAW,EACXC,mBAAkB,EAClBC,YAAW,GAGf9C,EAAK+C,SAAW,SAAUC,GAEtB,IAAGhD,EAAKsC,aAAR,CAEA,GAAKW,UAAUC,UAAUC,cAAcC,QAAQ,UAAY,GAC3D,CACI,GAAIC,IACA,oBAAsBrD,EAAKG,QAAU,MAAQ6C,EAAO,mDACpD,sBACA,sBACA,uCACA,sBACA,sBACA,sBACA,mCACA,mCACA,mCAKJM,SAAQC,IAAIC,MAAMF,QAASD,OAEtBI,QAAgB,SAErBH,QAAQC,IAAI,WAAavD,EAAKG,QAAU,4BAG5CH,GAAKsC,cAAe,IAgBxBtC,EAAK0D,QAAU,SAASC,GAMpB,GAHKA,YAAkB9B,SAAO8B,EAAS9B,MAAM+B,UAAUC,MAAMC,KAAKC,YAG/DJ,EAAO,YAAc3D,GAAKgE,MAC7B,CAEI,IAAI,GADAC,MACIC,EAAI,EAAGC,EAAKR,EAAOS,OAAYD,EAAJD,EAAQA,IAEvCD,EAAEI,KAAKV,EAAOO,GAAGI,EAAGX,EAAOO,GAAGK,EAGlCZ,GAASM,EAGblE,KAAKyE,QAAS,EACdzE,KAAK4D,OAASA,GASlB3D,EAAK0D,QAAQE,UAAUa,MAAQ,WAE3B,GAAId,GAAS5D,KAAK4D,OAAOE,OACzB,OAAO,IAAI7D,GAAK0D,QAAQC,IAW5B3D,EAAK0D,QAAQE,UAAUc,SAAW,SAASJ,EAAGC,GAQ1C,IAAI,GANAI,IAAS,EAITP,EAASrE,KAAK4D,OAAOS,OAAS,EAE1BF,EAAI,EAAGU,EAAIR,EAAS,EAAOA,EAAJF,EAAYU,EAAIV,IAC/C,CACI,GAAIW,GAAK9E,KAAK4D,OAAW,EAAJO,GAAQY,EAAK/E,KAAK4D,OAAW,EAAJO,EAAQ,GAClDa,EAAKhF,KAAK4D,OAAW,EAAJiB,GAAQI,EAAKjF,KAAK4D,OAAW,EAAJiB,EAAQ,GAClDK,EAAcH,EAAKP,GAAQS,EAAKT,IAAaQ,EAAKF,IAAON,EAAIO,IAAOE,EAAKF,GAAMD,EAAvCP,CAEzCW,KAAWN,GAAUA,GAG5B,MAAOA,IAIX3E,EAAK0D,QAAQE,UAAUsB,YAAclF,EAAK0D,QAgB1C1D,EAAKmF,OAAS,WAOVpF,KAAKqF,EAAI,EAOTrF,KAAKsF,EAAI,EAOTtF,KAAKuF,EAAI,EAOTvF,KAAKwF,EAAI,EAOTxF,KAAKyF,GAAK,EAOVzF,KAAK0F,GAAK,GAgBdzF,EAAKmF,OAAOvB,UAAU8B,UAAY,SAASC,GAEvC5F,KAAKqF,EAAIO,EAAM,GACf5F,KAAKsF,EAAIM,EAAM,GACf5F,KAAKuF,EAAIK,EAAM,GACf5F,KAAKwF,EAAII,EAAM,GACf5F,KAAKyF,GAAKG,EAAM,GAChB5F,KAAK0F,GAAKE,EAAM,IAUpB3F,EAAKmF,OAAOvB,UAAUgC,QAAU,SAASC,GAEjC9F,KAAK4F,QAAO5F,KAAK4F,MAAQ,GAAI3F,GAAK2B,aAAa,GACnD,IAAIgE,GAAQ5F,KAAK4F,KA2BjB,OAzBGE,IAECF,EAAM,GAAK5F,KAAKqF,EAChBO,EAAM,GAAK5F,KAAKsF,EAChBM,EAAM,GAAK,EACXA,EAAM,GAAK5F,KAAKuF,EAChBK,EAAM,GAAK5F,KAAKwF,EAChBI,EAAM,GAAK,EACXA,EAAM,GAAK5F,KAAKyF,GAChBG,EAAM,GAAK5F,KAAK0F,GAChBE,EAAM,GAAK,IAIXA,EAAM,GAAK5F,KAAKqF,EAChBO,EAAM,GAAK5F,KAAKuF,EAChBK,EAAM,GAAK5F,KAAKyF,GAChBG,EAAM,GAAK5F,KAAKsF,EAChBM,EAAM,GAAK5F,KAAKwF,EAChBI,EAAM,GAAK5F,KAAK0F,GAChBE,EAAM,GAAK,EACXA,EAAM,GAAK,EACXA,EAAM,GAAK,GAGRA,GAYX3F,EAAKmF,OAAOvB,UAAUJ,MAAQ,SAASsC,EAAKC,GAOxC,MALAA,GAASA,GAAU,GAAI/F,GAAKgE,MAE5B+B,EAAOzB,EAAIvE,KAAKqF,EAAIU,EAAIxB,EAAIvE,KAAKuF,EAAIQ,EAAIvB,EAAIxE,KAAKyF,GAClDO,EAAOxB,EAAIxE,KAAKsF,EAAIS,EAAIxB,EAAIvE,KAAKwF,EAAIO,EAAIvB,EAAIxE,KAAK0F,GAE3CM,GAYX/F,EAAKmF,OAAOvB,UAAUoC,aAAe,SAASF,EAAKC,GAE/CA,EAASA,GAAU,GAAI/F,GAAKgE,KAE5B,IAAIiC,GAAK,GAAKlG,KAAKqF,EAAIrF,KAAKwF,EAAIxF,KAAKuF,GAAKvF,KAAKsF,EAK/C,OAHAU,GAAOzB,EAAIvE,KAAKwF,EAAIU,EAAKH,EAAIxB,GAAKvE,KAAKuF,EAAIW,EAAKH,EAAIvB,GAAKxE,KAAK0F,GAAK1F,KAAKuF,EAAIvF,KAAKyF,GAAKzF,KAAKwF,GAAKU,EAChGF,EAAOxB,EAAIxE,KAAKqF,EAAIa,EAAKH,EAAIvB,GAAKxE,KAAKsF,EAAIY,EAAKH,EAAIxB,IAAMvE,KAAK0F,GAAK1F,KAAKqF,EAAIrF,KAAKyF,GAAKzF,KAAKsF,GAAKY,EAE1FF,GAWX/F,EAAKmF,OAAOvB,UAAUsC,UAAY,SAAS5B,EAAGC,GAK1C,MAHAxE,MAAKyF,IAAMlB,EACXvE,KAAK0F,IAAMlB,EAEJxE,MAWXC,EAAKmF,OAAOvB,UAAUuC,MAAQ,SAAS7B,EAAGC,GAStC,MAPAxE,MAAKqF,GAAKd,EACVvE,KAAKwF,GAAKhB,EACVxE,KAAKuF,GAAKhB,EACVvE,KAAKsF,GAAKd,EACVxE,KAAKyF,IAAMlB,EACXvE,KAAK0F,IAAMlB,EAEJxE,MAUXC,EAAKmF,OAAOvB,UAAUwC,OAAS,SAASC,GAEpC,GAAIC,GAAMrE,KAAKqE,IAAKD,GAChBE,EAAMtE,KAAKsE,IAAKF,GAEhBG,EAAKzG,KAAKqF,EACVqB,EAAK1G,KAAKuF,EACVoB,EAAM3G,KAAKyF,EASf,OAPAzF,MAAKqF,EAAIoB,EAAKF,EAAIvG,KAAKsF,EAAIkB,EAC3BxG,KAAKsF,EAAImB,EAAKD,EAAIxG,KAAKsF,EAAIiB,EAC3BvG,KAAKuF,EAAImB,EAAKH,EAAIvG,KAAKwF,EAAIgB,EAC3BxG,KAAKwF,EAAIkB,EAAKF,EAAIxG,KAAKwF,EAAIe,EAC3BvG,KAAKyF,GAAKkB,EAAMJ,EAAMvG,KAAK0F,GAAKc,EAChCxG,KAAK0F,GAAKiB,EAAMH,EAAMxG,KAAK0F,GAAKa,EAEzBvG,MAUXC,EAAKmF,OAAOvB,UAAU+C,OAAS,SAASC,GAEpC,GAAIJ,GAAKzG,KAAKqF,EACVyB,EAAK9G,KAAKsF,EACVoB,EAAK1G,KAAKuF,EACVwB,EAAK/G,KAAKwF,CAUd,OARAxF,MAAKqF,EAAKwB,EAAOxB,EAAIoB,EAAKI,EAAOvB,EAAIoB,EACrC1G,KAAKsF,EAAKuB,EAAOxB,EAAIyB,EAAKD,EAAOvB,EAAIyB,EACrC/G,KAAKuF,EAAKsB,EAAOtB,EAAIkB,EAAKI,EAAOrB,EAAIkB,EACrC1G,KAAKwF,EAAKqB,EAAOtB,EAAIuB,EAAKD,EAAOrB,EAAIuB,EAErC/G,KAAKyF,GAAKoB,EAAOpB,GAAKgB,EAAKI,EAAOnB,GAAKgB,EAAK1G,KAAKyF,GACjDzF,KAAK0F,GAAKmB,EAAOpB,GAAKqB,EAAKD,EAAOnB,GAAKqB,EAAK/G,KAAK0F,GAE1C1F,MASXC,EAAKmF,OAAOvB,UAAUmD,SAAW,WAS7B,MAPAhH,MAAKqF,EAAI,EACTrF,KAAKsF,EAAI,EACTtF,KAAKuF,EAAI,EACTvF,KAAKwF,EAAI,EACTxF,KAAKyF,GAAK,EACVzF,KAAK0F,GAAK,EAEH1F,MAGXC,EAAKgH,eAAiB,GAAIhH,GAAKmF,OAgB/BnF,EAAKiH,UAAY,SAAS3C,EAAGC,EAAG2C,EAAOC,GAOnCpH,KAAKuE,EAAIA,GAAK,EAOdvE,KAAKwE,EAAIA,GAAK,EAOdxE,KAAKmH,MAAQA,GAAS,EAOtBnH,KAAKoH,OAASA,GAAU,GAS5BnH,EAAKiH,UAAUrD,UAAUa,MAAQ,WAE7B,MAAO,IAAIzE,GAAKiH,UAAUlH,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKmH,MAAOnH,KAAKoH,SAW/DnH,EAAKiH,UAAUrD,UAAUc,SAAW,SAASJ,EAAGC,GAE5C,GAAGxE,KAAKmH,OAAS,GAAKnH,KAAKoH,QAAU,EACjC,OAAO,CAEX,IAAIC,GAAKrH,KAAKuE,CACd,IAAGA,GAAK8C,GAAM9C,GAAK8C,EAAKrH,KAAKmH,MAC7B,CACI,GAAIG,GAAKtH,KAAKwE,CAEd,IAAGA,GAAK8C,GAAM9C,GAAK8C,EAAKtH,KAAKoH,OAEzB,OAAO,EAIf,OAAO,GAIXnH,EAAKiH,UAAUrD,UAAUsB,YAAclF,EAAKiH,UAE5CjH,EAAKsH,eAAiB,GAAItH,GAAKiH,UAAU,EAAE,EAAE,EAAE,GAgB/CjH,EAAKuH,iBAAmB,SAASjD,EAAGC,EAAG2C,EAAOC,EAAQK,GAOlDzH,KAAKuE,EAAIA,GAAK,EAOdvE,KAAKwE,EAAIA,GAAK,EAOdxE,KAAKmH,MAAQA,GAAS,EAOtBnH,KAAKoH,OAASA,GAAU,EAOxBpH,KAAKyH,OAASA,GAAU,IAS5BxH,EAAKuH,iBAAiB3D,UAAUa,MAAQ,WAEpC,MAAO,IAAIzE,GAAKuH,iBAAiBxH,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKmH,MAAOnH,KAAKoH,OAAQpH,KAAKyH,SAWnFxH,EAAKuH,iBAAiB3D,UAAUc,SAAW,SAASJ,EAAGC,GAEnD,GAAGxE,KAAKmH,OAAS,GAAKnH,KAAKoH,QAAU,EACjC,OAAO,CAEX,IAAIC,GAAKrH,KAAKuE,CACd,IAAGA,GAAK8C,GAAM9C,GAAK8C,EAAKrH,KAAKmH,MAC7B,CACI,GAAIG,GAAKtH,KAAKwE,CAEd,IAAGA,GAAK8C,GAAM9C,GAAK8C,EAAKtH,KAAKoH,OAEzB,OAAO,EAIf,OAAO,GAIXnH,EAAKuH,iBAAiB3D,UAAUsB,YAAclF,EAAKuH,iBAcnDvH,EAAKyH,cAAgB,WAQjB1H,KAAK2H,SAAW,GAAI1H,GAAKgE,MAQzBjE,KAAKoG,MAAQ,GAAInG,GAAKgE,MAAM,EAAE,GAW9BjE,KAAK4H,kBAAoB,KAQzB5H,KAAK6H,yBAA2B,KAQhC7H,KAAK8H,MAAQ,GAAI7H,GAAKgE,MAAM,EAAE,GAQ9BjE,KAAK+H,SAAW,EAQhB/H,KAAKgI,MAAQ,EAQbhI,KAAKiI,SAAU,EASfjI,KAAKkI,QAAU,KAQflI,KAAKmI,YAAa,EAQlBnI,KAAKoI,YAAa,EASlBpI,KAAKqI,OAAS,KASdrI,KAAKsI,MAAQ,KASbtI,KAAKuI,WAAa,EAUlBvI,KAAKwI,cAAe,EASpBxI,KAAKyI,cAAgB,UAUrBzI,KAAK0I,eAAiB,GAAIzI,GAAKmF,OAS/BpF,KAAK2I,IAAM,EASX3I,KAAK4I,IAAM,EASX5I,KAAK6I,WAAa,KASlB7I,KAAK8I,QAAU,GAAI7I,GAAKiH,UAAU,EAAG,EAAG,EAAG,GAS3ClH,KAAK+I,eAAiB,KAStB/I,KAAKgJ,MAAQ,KASbhJ,KAAKiJ,gBAAiB,EAStBjJ,KAAKkJ,eAAgB,GAyGzBjJ,EAAKyH,cAAc7D,UAAUsB,YAAclF,EAAKyH,cAShDyB,OAAOC,eAAenJ,EAAKyH,cAAc7D,UAAW,eAChDwF,IAAK,WACD,MAAOrJ,MAAKwI,cAEhBc,IAAK,SAASC,GACVvJ,KAAKwI,aAAee,EAIjBvJ,KAAKsI,QAAMtI,KAAKsI,MAAMkB,OAAQ,MAUzCL,OAAOC,eAAenJ,EAAKyH,cAAc7D,UAAW,gBAChDwF,IAAK,WACD,GAAII,GAAOzJ,IAEX,GACA,CACI,IAAIyJ,EAAKxB,QAAQ,OAAO,CACxBwB,GAAOA,EAAKpB,aAEVoB,EAEN,QAAO,KAYfN,OAAOC,eAAenJ,EAAKyH,cAAc7D,UAAW,QAChDwF,IAAK,WACD,MAAOrJ,MAAKgJ,OAEhBM,IAAK,SAASC,GAEPvJ,KAAKgJ,QAAMhJ,KAAKgJ,MAAMU,QAAS,GAClC1J,KAAKgJ,MAAQO,EACVvJ,KAAKgJ,QAAMhJ,KAAKgJ,MAAMU,QAAS,MAW1CP,OAAOC,eAAenJ,EAAKyH,cAAc7D,UAAW,WAEhDwF,IAAK,WACD,MAAOrJ,MAAK2J,UAGhBL,IAAK,SAASC,GAEV,GAAGA,EACH,CAGI,IAAK,GADDK,MACKzF,EAAI,EAAGA,EAAIoF,EAAMlF,OAAQF,IAG9B,IAAK,GADD0F,GAAeN,EAAMpF,GAAGyF,OACnB/E,EAAI,EAAGA,EAAIgF,EAAaxF,OAAQQ,IAErC+E,EAAOtF,KAAKuF,EAAahF,GAKjC7E,MAAK8J,cAAgBC,OAAO/J,KAAM6J,aAAaD,GAGnD5J,KAAK2J,SAAWJ,KAWxBJ,OAAOC,eAAenJ,EAAKyH,cAAc7D,UAAW,iBAEhDwF,IAAK,WACD,MAAQrJ,MAAKiJ,gBAGjBK,IAAK,SAASC,GAEPvJ,KAAKiJ,iBAAmBM,IAExBA,EAECvJ,KAAKgK,wBAILhK,KAAKiK,uBAGTjK,KAAKiJ,eAAiBM,MAU9BtJ,EAAKyH,cAAc7D,UAAUqG,gBAAkB,WAG3C,GAII7E,GAAGC,EAAGC,EAAGC,EAAGC,EAAIC,EAJhByE,EAAKnK,KAAKqI,OAAOK,eACjB0B,EAAKpK,KAAK0I,cAOX1I,MAAK+H,SAAW9H,EAAKgC,MAGjBjC,KAAK+H,WAAa/H,KAAKqK,gBAEtBrK,KAAKqK,cAAgBrK,KAAK+H,SAC1B/H,KAAK2I,IAAMzG,KAAKsE,IAAIxG,KAAK+H,UACzB/H,KAAK4I,IAAM1G,KAAKqE,IAAIvG,KAAK+H,WAI7B1C,EAAMrF,KAAK4I,IAAM5I,KAAKoG,MAAM7B,EAC5Be,EAAMtF,KAAK2I,IAAM3I,KAAKoG,MAAM7B,EAC5BgB,GAAMvF,KAAK2I,IAAM3I,KAAKoG,MAAM5B,EAC5BgB,EAAMxF,KAAK4I,IAAM5I,KAAKoG,MAAM5B,EAC5BiB,EAAMzF,KAAK2H,SAASpD,EACpBmB,EAAM1F,KAAK2H,SAASnD,GAGjBxE,KAAK8H,MAAMvD,GAAKvE,KAAK8H,MAAMtD,KAE1BiB,GAAMzF,KAAK8H,MAAMvD,EAAIc,EAAIrF,KAAK8H,MAAMtD,EAAIe,EACxCG,GAAM1F,KAAK8H,MAAMvD,EAAIe,EAAItF,KAAK8H,MAAMtD,EAAIgB,GAI5C4E,EAAG/E,EAAKA,EAAK8E,EAAG9E,EAAIC,EAAK6E,EAAG5E,EAC5B6E,EAAG9E,EAAKD,EAAK8E,EAAG7E,EAAIA,EAAK6E,EAAG3E,EAC5B4E,EAAG7E,EAAKA,EAAK4E,EAAG9E,EAAIG,EAAK2E,EAAG5E,EAC5B6E,EAAG5E,EAAKD,EAAK4E,EAAG7E,EAAIE,EAAK2E,EAAG3E,EAC5B4E,EAAG3E,GAAKA,EAAK0E,EAAG9E,EAAIK,EAAKyE,EAAG5E,EAAI4E,EAAG1E,GACnC2E,EAAG1E,GAAKD,EAAK0E,EAAG7E,EAAII,EAAKyE,EAAG3E,EAAI2E,EAAGzE,KAKnCL,EAAKrF,KAAKoG,MAAM7B,EAChBiB,EAAKxF,KAAKoG,MAAM5B,EAEhBiB,EAAMzF,KAAK2H,SAASpD,EACpBmB,EAAM1F,KAAK2H,SAASnD,EAEpB4F,EAAG/E,EAAKA,EAAK8E,EAAG9E,EAChB+E,EAAG9E,EAAKD,EAAK8E,EAAG7E,EAChB8E,EAAG7E,EAAKC,EAAK2E,EAAG5E,EAChB6E,EAAG5E,EAAKA,EAAK2E,EAAG3E,EAChB4E,EAAG3E,GAAKA,EAAK0E,EAAG9E,EAAIK,EAAKyE,EAAG5E,EAAI4E,EAAG1E,GACnC2E,EAAG1E,GAAKD,EAAK0E,EAAG7E,EAAII,EAAKyE,EAAG3E,EAAI2E,EAAGzE,IAIvC1F,KAAKuI,WAAavI,KAAKgI,MAAQhI,KAAKqI,OAAOE,WAGvCvI,KAAK4H,mBAEL5H,KAAK4H,kBAAkB7D,KAAK/D,KAAK6H,yBAA0BuC,EAAID,IAMvElK,EAAKyH,cAAc7D,UAAUyG,6BAA+BrK,EAAKyH,cAAc7D,UAAUqG,gBASzFjK,EAAKyH,cAAc7D,UAAU0G,UAAY,SAAS1D,GAG9C,MADAA,GAASA,EACF5G,EAAKsH,gBAShBtH,EAAKyH,cAAc7D,UAAU2G,eAAiB,WAE1C,MAAOxK,MAAKuK,UAAUtK,EAAKgH,iBAS/BhH,EAAKyH,cAAc7D,UAAU4G,kBAAoB,SAASnC,GAEtDtI,KAAKsI,MAAQA,EACVtI,KAAKwI,eAAaxI,KAAKsI,MAAMkB,OAAQ,IAa5CvJ,EAAKyH,cAAc7D,UAAU6G,gBAAkB,SAAS7H,EAAY8H,EAAWC,GAE3E,GAAIC,GAAS7K,KAAKwK,iBAEdM,EAAgB,GAAI7K,GAAK8K,cAA6B,EAAfF,EAAO1D,MAA2B,EAAhB0D,EAAOzD,OAAYwD,EAAUD,EAAW9H,EAOrG,OALA5C,GAAKyH,cAAcsD,YAAYvF,IAAMoF,EAAOtG,EAC5CtE,EAAKyH,cAAcsD,YAAYtF,IAAMmF,EAAOrG,EAE5CsG,EAAcG,OAAOjL,KAAMC,EAAKyH,cAAcsD,aAEvCF,GAQX7K,EAAKyH,cAAc7D,UAAUqH,YAAc,WAEvClL,KAAKgK,yBAUT/J,EAAKyH,cAAc7D,UAAUsH,SAAW,SAASxD,GAG7C,MADA3H,MAAKkK,kBACElK,KAAK0I,eAAejF,MAAMkE,IAWrC1H,EAAKyH,cAAc7D,UAAUuH,QAAU,SAASzD,EAAU0D,GAStD,MAPIA,KAEA1D,EAAW0D,EAAKF,SAASxD,IAG7B3H,KAAKkK,kBAEElK,KAAK0I,eAAezC,aAAa0B,IAU5C1H,EAAKyH,cAAc7D,UAAUyH,oBAAsB,SAASC,GAExDvL,KAAKwL,cAAcjD,WAAavI,KAAKuI,WAElCgD,EAAcE,GAEbxL,EAAKyL,OAAO7H,UAAU8H,aAAa5H,KAAK/D,KAAKwL,cAAeD,GAI5DtL,EAAKyL,OAAO7H,UAAU+H,cAAc7H,KAAK/D,KAAKwL,cAAeD,IAUrEtL,EAAKyH,cAAc7D,UAAUmG,sBAAwB,WAEjDhK,KAAKiJ,gBAAiB,CACtB,IAAI4B,GAAS7K,KAAKwK,gBAElB,IAAIxK,KAAKwL,cASLxL,KAAKwL,cAAcK,QAAQC,OAAsB,EAAfjB,EAAO1D,MAA2B,EAAhB0D,EAAOzD,YAR/D,CACI,GAAI0D,GAAgB,GAAI7K,GAAK8K,cAA6B,EAAfF,EAAO1D,MAA2B,EAAhB0D,EAAOzD,OAEpEpH,MAAKwL,cAAgB,GAAIvL,GAAKyL,OAAOZ,GACrC9K,KAAKwL,cAAc9C,eAAiB1I,KAAK0I,eAQ7C,GAAIqD,GAAc/L,KAAK2J,QACvB3J,MAAK2J,SAAW,KAEhB3J,KAAKwL,cAAcQ,QAAUD,EAE7B9L,EAAKyH,cAAcsD,YAAYvF,IAAMoF,EAAOtG,EAC5CtE,EAAKyH,cAAcsD,YAAYtF,IAAMmF,EAAOrG,EAE5CxE,KAAKwL,cAAcK,QAAQZ,OAAOjL,KAAMC,EAAKyH,cAAcsD,aAE3DhL,KAAKwL,cAAcS,OAAO1H,IAAOsG,EAAOtG,EAAIsG,EAAO1D,OACnDnH,KAAKwL,cAAcS,OAAOzH,IAAOqG,EAAOrG,EAAIqG,EAAOzD,QAEnDpH,KAAK2J,SAAWoC,EAEhB/L,KAAKiJ,gBAAiB,GAS1BhJ,EAAKyH,cAAc7D,UAAUoG,qBAAuB,WAE5CjK,KAAKwL,gBAETxL,KAAKwL,cAAcK,QAAQK,SAAQ,GAGnClM,KAAKwL,cAAgB,OAUzBvL,EAAKyH,cAAc7D,UAAU8H,aAAe,SAASJ,GAIjDA,EAAgBA,GAUpBtL,EAAKyH,cAAc7D,UAAU+H,cAAgB,SAASL,GAIlDA,EAAgBA,GAIpBtL,EAAKyH,cAAcsD,YAAc,GAAI/K,GAAKmF,OAQ1C+D,OAAOC,eAAenJ,EAAKyH,cAAc7D,UAAW,KAChDwF,IAAK,WACD,MAAQrJ,MAAK2H,SAASpD,GAE1B+E,IAAK,SAASC,GACVvJ,KAAK2H,SAASpD,EAAIgF,KAU1BJ,OAAOC,eAAenJ,EAAKyH,cAAc7D,UAAW,KAChDwF,IAAK,WACD,MAAQrJ,MAAK2H,SAASnD,GAE1B8E,IAAK,SAASC,GACVvJ,KAAK2H,SAASnD,EAAI+E,KAgB1BtJ,EAAKkM,uBAAyB,WAE1BlM,EAAKyH,cAAc3D,KAAM/D,MASzBA,KAAKoM,aAOTnM,EAAKkM,uBAAuBtI,UAAYsF,OAAOkD,OAAQpM,EAAKyH,cAAc7D,WAC1E5D,EAAKkM,uBAAuBtI,UAAUsB,YAAclF,EAAKkM,uBASzDhD,OAAOC,eAAenJ,EAAKkM,uBAAuBtI,UAAW,SACzDwF,IAAK,WACD,MAAOrJ,MAAKoG,MAAM7B,EAAIvE,KAAKwK,iBAAiBrD,OAEhDmC,IAAK,SAASC,GAEV,GAAIpC,GAAQnH,KAAKwK,iBAAiBrD,KAI9BnH,MAAKoG,MAAM7B,EAFF,IAAV4C,EAEgBoC,EAAQpC,EAIR,EAInBnH,KAAKsM,OAAS/C,KAUtBJ,OAAOC,eAAenJ,EAAKkM,uBAAuBtI,UAAW,UACzDwF,IAAK,WACD,MAAQrJ,MAAKoG,MAAM5B,EAAIxE,KAAKwK,iBAAiBpD,QAEjDkC,IAAK,SAASC,GAEV,GAAInC,GAASpH,KAAKwK,iBAAiBpD,MAI/BpH,MAAKoG,MAAM5B,EAFD,IAAX4C,EAEgBmC,EAAQnC,EAIR,EAGnBpH,KAAKuM,QAAUhD,KAWvBtJ,EAAKkM,uBAAuBtI,UAAU2I,SAAW,SAASC,GAEtD,MAAOzM,MAAK0M,WAAWD,EAAOzM,KAAKoM,SAAS/H,SAWhDpE,EAAKkM,uBAAuBtI,UAAU6I,WAAa,SAASD,EAAOE,GAE/D,GAAGA,GAAS,GAAKA,GAAS3M,KAAKoM,SAAS/H,OAapC,MAXGoI,GAAMpE,QAELoE,EAAMpE,OAAOuE,YAAYH,GAG7BA,EAAMpE,OAASrI,KAEfA,KAAKoM,SAASS,OAAOF,EAAO,EAAGF,GAE5BzM,KAAKsI,OAAMmE,EAAMhC,kBAAkBzK,KAAKsI,OAEpCmE,CAIP,MAAM,IAAIK,OAAML,EAAQ,yBAA0BE,EAAO,8BAAgC3M,KAAKoM,SAAS/H,SAW/GpE,EAAKkM,uBAAuBtI,UAAUkJ,aAAe,SAASN,EAAOO,GAEjE,GAAGP,IAAUO,EAAb,CAIA,GAAIC,GAASjN,KAAKkN,cAAcT,GAC5BU,EAASnN,KAAKkN,cAAcF,EAEhC,IAAY,EAATC,GAAuB,EAATE,EACb,KAAM,IAAIL,OAAM,gFAGpB9M,MAAKoM,SAASa,GAAUD,EACxBhN,KAAKoM,SAASe,GAAUV,IAW5BxM,EAAKkM,uBAAuBtI,UAAUqJ,cAAgB,SAAST,GAE3D,GAAIE,GAAQ3M,KAAKoM,SAAS/I,QAAQoJ,EAClC,IAAc,KAAVE,EAEA,KAAM,IAAIG,OAAM,2DAEpB,OAAOH,IAUX1M,EAAKkM,uBAAuBtI,UAAUuJ,cAAgB,SAASX,EAAOE,GAElE,GAAY,EAARA,GAAaA,GAAS3M,KAAKoM,SAAS/H,OAEpC,KAAM,IAAIyI,OAAM,sCAEpB,IAAIO,GAAerN,KAAKkN,cAAcT,EACtCzM,MAAKoM,SAASS,OAAOQ,EAAc,GACnCrN,KAAKoM,SAASS,OAAOF,EAAO,EAAGF,IAUnCxM,EAAKkM,uBAAuBtI,UAAUyJ,WAAa,SAASX,GAExD,GAAY,EAARA,GAAaA,GAAS3M,KAAKoM,SAAS/H,OAEpC,KAAM,IAAIyI,OAAM,8BAA+BH,EAAO,iGAE1D,OAAO3M,MAAKoM,SAASO,IAWzB1M,EAAKkM,uBAAuBtI,UAAU+I,YAAc,SAASH,GAEzD,GAAIE,GAAQ3M,KAAKoM,SAAS/I,QAASoJ,EACnC,IAAa,KAAVE,EAEH,MAAO3M,MAAKuN,cAAeZ,IAU/B1M,EAAKkM,uBAAuBtI,UAAU0J,cAAgB,SAASZ,GAE3D,GAAIF,GAAQzM,KAAKsN,WAAYX,EAM7B,OALG3M,MAAKsI,OACJmE,EAAMe,uBAEVf,EAAMpE,OAASoF,OACfzN,KAAKoM,SAASS,OAAQF,EAAO,GACtBF,GAUXxM,EAAKkM,uBAAuBtI,UAAU6J,eAAiB,SAASC,EAAYC,GAExE,GAAIC,GAAQF,GAAc,EACtBG,EAA0B,gBAAbF,GAAwBA,EAAW5N,KAAKoM,SAAS/H,OAC9D0J,EAAQD,EAAMD,CAElB,IAAIE,EAAQ,GAAcD,GAATC,EACjB,CAEI,IAAK,GADDC,GAAUhO,KAAKoM,SAASS,OAAOgB,EAAOE,GACjC5J,EAAI,EAAGA,EAAI6J,EAAQ3J,OAAQF,IAAK,CACrC,GAAIsI,GAAQuB,EAAQ7J,EACjBnE,MAAKsI,OACJmE,EAAMe,uBACVf,EAAMpE,OAASoF,OAEnB,MAAOO,GAEN,GAAc,IAAVD,GAAwC,IAAzB/N,KAAKoM,SAAS/H,OAElC,QAIA,MAAM,IAAIyI,OAAO,iFAUzB7M,EAAKkM,uBAAuBtI,UAAUqG,gBAAkB,WAEpD,GAAIlK,KAAKiI,UAETjI,KAAKsK,gCAIFtK,KAAKiJ,gBAER,IAAI,GAAI9E,GAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAErCnE,KAAKoM,SAASjI,GAAG+F,mBAKzBjK,EAAKkM,uBAAuBtI,UAAUoK,sCAAwChO,EAAKkM,uBAAuBtI,UAAUqG,gBAQpHjK,EAAKkM,uBAAuBtI,UAAU0G,UAAY,WAE9C,GAA4B,IAAzBvK,KAAKoM,SAAS/H,OAAa,MAAOpE,GAAKsH,cAgB1C,KAAI,GANA2G,GACAC,EACAC,EARAC,EAAOC,IACPC,EAAOD,IAEPE,GAAQF,IACRG,GAAQH,IAMRI,GAAe,EAEXvK,EAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IACzC,CACI,GAAIsI,GAAQzM,KAAKoM,SAASjI,EAEtBsI,GAAMxE,UAEVyG,GAAe,EAEfR,EAAclO,KAAKoM,SAASjI,GAAGoG,YAE/B8D,EAAOA,EAAOH,EAAY3J,EAAI8J,EAAOH,EAAY3J,EACjDgK,EAAOA,EAAOL,EAAY1J,EAAI+J,EAAOL,EAAY1J,EAEjD2J,EAAYD,EAAY/G,MAAQ+G,EAAY3J,EAC5C6J,EAAYF,EAAY9G,OAAS8G,EAAY1J,EAE7CgK,EAAOA,EAAOL,EAAYK,EAAOL,EACjCM,EAAOA,EAAOL,EAAYK,EAAOL,GAGrC,IAAIM,EACA,MAAOzO,GAAKsH,cAEhB,IAAIsD,GAAS7K,KAAK8I,OAUlB,OARA+B,GAAOtG,EAAI8J,EACXxD,EAAOrG,EAAI+J,EACX1D,EAAO1D,MAAQqH,EAAOH,EACtBxD,EAAOzD,OAASqH,EAAOF,EAKhB1D,GASX5K,EAAKkM,uBAAuBtI,UAAU2G,eAAiB,WAEnD,GAAImE,GAAc3O,KAAK0I,cAEvB1I,MAAK0I,eAAiBzI,EAAKgH,cAE3B,KAAI,GAAI9C,GAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAErCnE,KAAKoM,SAASjI,GAAG+F,iBAGrB,IAAIW,GAAS7K,KAAKuK,WAIlB,OAFAvK,MAAK0I,eAAiBiG,EAEf9D,GASX5K,EAAKkM,uBAAuBtI,UAAU4G,kBAAoB,SAASnC,GAE/DtI,KAAKsI,MAAQA,EACVtI,KAAKwI,eAAaxI,KAAKsI,MAAMkB,OAAQ,EAExC,KAAI,GAAIrF,GAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IACzC,CACI,GAAIsI,GAAQzM,KAAKoM,SAASjI,EAC1BsI,GAAMhC,kBAAkBnC,KAShCrI,EAAKkM,uBAAuBtI,UAAU2J,qBAAuB,WAGzD,IAAI,GAAIrJ,GAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IACzC,CACI,GAAIsI,GAAQzM,KAAKoM,SAASjI,EAC1BsI,GAAMe,uBAGPxN,KAAKwI,eAAaxI,KAAKsI,MAAMkB,OAAQ,GAExCxJ,KAAKsI,MAAQ,MAUjBrI,EAAKkM,uBAAuBtI,UAAU8H,aAAe,SAASJ,GAE1D,GAAIvL,KAAKiI,WAAWjI,KAAKgI,OAAS,GAAlC,CAEA,GAAGhI,KAAKiJ,eAGJ,WADAjJ,MAAKsL,oBAAoBC,EAI7B,IAAIpH,GAAEU,CAEN,IAAG7E,KAAKgJ,OAAShJ,KAAK2J,SACtB,CAiBI,IAdG3J,KAAK2J,WAEJ4B,EAAcqD,YAAYC,QAC1BtD,EAAcuD,cAAcC,WAAW/O,KAAK8J,eAG7C9J,KAAKgJ,QAEJuC,EAAcqD,YAAYI,OAC1BzD,EAAc0D,YAAYC,SAASlP,KAAKmP,KAAM5D,GAC9CA,EAAcqD,YAAYQ,SAI1BjL,EAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAEjCnE,KAAKoM,SAASjI,GAAGwH,aAAaJ,EAGlCA,GAAcqD,YAAYI,OAEvBhP,KAAKgJ,OAAMuC,EAAc0D,YAAYI,QAAQrP,KAAKgJ,MAAOuC,GACzDvL,KAAK2J,UAAS4B,EAAcuD,cAAcQ,YAE7C/D,EAAcqD,YAAYQ,YAK1B,KAAIjL,EAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAEjCnE,KAAKoM,SAASjI,GAAGwH,aAAaJ,KAY1CtL,EAAKkM,uBAAuBtI,UAAU+H,cAAgB,SAASL,GAE3D,GAAGvL,KAAKiI,WAAY,GAAwB,IAAfjI,KAAKgI,MAAlC,CAEA,GAAGhI,KAAKiJ,eAIJ,WADAjJ,MAAKsL,oBAAoBC,EAI1BvL,MAAKgJ,OAEJuC,EAAc0D,YAAYC,SAASlP,KAAKgJ,MAAOuC,EAGnD,KAAI,GAAIpH,GAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IACzC,CACI,GAAIsI,GAAQzM,KAAKoM,SAASjI,EAC1BsI,GAAMb,cAAcL,GAGrBvL,KAAKgJ,OAEJuC,EAAc0D,YAAYI,QAAQ9D,KAqB1CtL,EAAKyL,OAAS,SAASG,GAEnB5L,EAAKkM,uBAAuBpI,KAAM/D,MAWlCA,KAAKiM,OAAS,GAAIhM,GAAKgE,MAQvBjE,KAAK6L,QAAUA,EASf7L,KAAKsM,OAAS,EASdtM,KAAKuM,QAAU,EASfvM,KAAKuP,KAAO,SASZvP,KAAKwP,UAAYvP,EAAKI,WAAWC,OASjCN,KAAKyP,OAAS,KAEX5D,EAAQ6D,YAAYC,UAEnB3P,KAAK4P,kBAIL5P,KAAK6L,QAAQgE,GAAI,SAAU7P,KAAK4P,gBAAgBE,KAAK9P,OAGzDA,KAAKoI,YAAa,GAKtBnI,EAAKyL,OAAO7H,UAAYsF,OAAOkD,OAAQpM,EAAKkM,uBAAuBtI,WACnE5D,EAAKyL,OAAO7H,UAAUsB,YAAclF,EAAKyL,OAQzCvC,OAAOC,eAAenJ,EAAKyL,OAAO7H,UAAW,SACzCwF,IAAK,WACD,MAAOrJ,MAAKoG,MAAM7B,EAAIvE,KAAK6L,QAAQkE,MAAM5I,OAE7CmC,IAAK,SAASC,GACVvJ,KAAKoG,MAAM7B,EAAIgF,EAAQvJ,KAAK6L,QAAQkE,MAAM5I,MAC1CnH,KAAKsM,OAAS/C,KAUtBJ,OAAOC,eAAenJ,EAAKyL,OAAO7H,UAAW,UACzCwF,IAAK,WACD,MAAQrJ,MAAKoG,MAAM5B,EAAIxE,KAAK6L,QAAQkE,MAAM3I,QAE9CkC,IAAK,SAASC,GACVvJ,KAAKoG,MAAM5B,EAAI+E,EAAQvJ,KAAK6L,QAAQkE,MAAM3I,OAC1CpH,KAAKuM,QAAUhD,KAUvBtJ,EAAKyL,OAAO7H,UAAUmM,WAAa,SAASnE,GAExC7L,KAAK6L,QAAUA,EACf7L,KAAKiQ,WAAa,UAUtBhQ,EAAKyL,OAAO7H,UAAU+L,gBAAkB,WAGjC5P,KAAKsM,SAAOtM,KAAKoG,MAAM7B,EAAIvE,KAAKsM,OAAStM,KAAK6L,QAAQkE,MAAM5I,OAC5DnH,KAAKuM,UAAQvM,KAAKoG,MAAM5B,EAAIxE,KAAKuM,QAAUvM,KAAK6L,QAAQkE,MAAM3I,SAYrEnH,EAAKyL,OAAO7H,UAAU0G,UAAY,SAAS1D,GAEvC,GAAIM,GAAQnH,KAAK6L,QAAQkE,MAAM5I,MAC3BC,EAASpH,KAAK6L,QAAQkE,MAAM3I,OAE5B8I,EAAK/I,GAAS,EAAEnH,KAAKiM,OAAO1H,GAC5B4L,EAAKhJ,GAASnH,KAAKiM,OAAO1H,EAE1B6L,EAAKhJ,GAAU,EAAEpH,KAAKiM,OAAOzH,GAC7B6L,EAAKjJ,GAAUpH,KAAKiM,OAAOzH,EAE3BkE,EAAiB7B,GAAU7G,KAAK0I,eAEhCrD,EAAIqD,EAAerD,EACnBC,EAAIoD,EAAepD,EACnBC,EAAImD,EAAenD,EACnBC,EAAIkD,EAAelD,EACnBC,EAAKiD,EAAejD,GACpBC,EAAKgD,EAAehD,GAEpB2B,EAAKhC,EAAI8K,EAAK5K,EAAI8K,EAAK5K,EACvB6B,EAAK9B,EAAI6K,EAAK/K,EAAI6K,EAAKzK,EAEvB4K,EAAKjL,EAAI6K,EAAK3K,EAAI8K,EAAK5K,EACvB8K,EAAK/K,EAAI6K,EAAK/K,EAAI4K,EAAKxK,EAEvB8K,EAAKnL,EAAI6K,EAAK3K,EAAI6K,EAAK3K,EACvBgL,EAAKjL,EAAI4K,EAAK9K,EAAI4K,EAAKxK,EAEvBgL,EAAMrL,EAAI8K,EAAK5K,EAAI6K,EAAK3K,EACxBkL,EAAMnL,EAAI4K,EAAK9K,EAAI6K,EAAKzK,EAExB8I,GAAQF,IACRG,GAAQH,IAERD,EAAOC,IACPC,EAAOD,GAEXD,GAAYA,EAALhH,EAAYA,EAAKgH,EACxBA,EAAYA,EAALiC,EAAYA,EAAKjC,EACxBA,EAAYA,EAALmC,EAAYA,EAAKnC,EACxBA,EAAYA,EAALqC,EAAYA,EAAKrC,EAExBE,EAAYA,EAALjH,EAAYA,EAAKiH,EACxBA,EAAYA,EAALgC,EAAYA,EAAKhC,EACxBA,EAAYA,EAALkC,EAAYA,EAAKlC,EACxBA,EAAYA,EAALoC,EAAYA,EAAKpC,EAExBC,EAAOnH,EAAKmH,EAAOnH,EAAKmH,EACxBA,EAAO8B,EAAK9B,EAAO8B,EAAK9B,EACxBA,EAAOgC,EAAKhC,EAAOgC,EAAKhC,EACxBA,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EAExBC,EAAOnH,EAAKmH,EAAOnH,EAAKmH,EACxBA,EAAO8B,EAAK9B,EAAO8B,EAAK9B,EACxBA,EAAOgC,EAAKhC,EAAOgC,EAAKhC,EACxBA,EAAOkC,EAAKlC,EAAOkC,EAAKlC,CAExB,IAAI5D,GAAS7K,KAAK8I,OAWlB,OATA+B,GAAOtG,EAAI8J,EACXxD,EAAO1D,MAAQqH,EAAOH,EAEtBxD,EAAOrG,EAAI+J,EACX1D,EAAOzD,OAASqH,EAAOF,EAGvBvO,KAAK+I,eAAiB8B,EAEfA,GAUX5K,EAAKyL,OAAO7H,UAAU8H,aAAe,SAASJ,GAG1C,GAAIvL,KAAKiI,WAAWjI,KAAKgI,OAAS,GAAlC,CAEA,GAAI7D,GAAEU,CAGN,IAAG7E,KAAKgJ,OAAShJ,KAAK2J,SACtB,CACI,GAAIiF,GAAerD,EAAcqD,WAoBjC,KAjBG5O,KAAK2J,WAEJiF,EAAYC,QACZtD,EAAcuD,cAAcC,WAAW/O,KAAK8J,eAG7C9J,KAAKgJ,QAEJ4F,EAAYI,OACZzD,EAAc0D,YAAYC,SAASlP,KAAKmP,KAAM5D,GAC9CqD,EAAYQ,SAIhBR,EAAY3D,OAAOjL,MAGfmE,EAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAEjCnE,KAAKoM,SAASjI,GAAGwH,aAAaJ,EAIlCqD,GAAYI,OAEThP,KAAKgJ,OAAMuC,EAAc0D,YAAYI,QAAQrP,KAAKgJ,MAAOuC,GACzDvL,KAAK2J,UAAS4B,EAAcuD,cAAcQ,YAE7CV,EAAYQ,YAOZ,KAHA7D,EAAcqD,YAAY3D,OAAOjL,MAG7BmE,EAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAEjCnE,KAAKoM,SAASjI,GAAGwH,aAAaJ,KAa1CtL,EAAKyL,OAAO7H,UAAU+H,cAAgB,SAASL,GAG3C,KAAIvL,KAAKiI,WAAY,GAAwB,IAAfjI,KAAKgI,OAAehI,KAAK6L,QAAQ+E,KAAKzJ,OAAS,GAAKnH,KAAK6L,QAAQ+E,KAAKxJ,QAAU,GAA9G,CAcA,GAZIpH,KAAKwP,YAAcjE,EAAcsF,mBAEjCtF,EAAcsF,iBAAmB7Q,KAAKwP,UACtCjE,EAAcuF,QAAQC,yBAA2B9Q,EAAK+Q,iBAAiBzF,EAAcsF,mBAGrF7Q,KAAKgJ,OAELuC,EAAc0D,YAAYC,SAASlP,KAAKgJ,MAAOuC,GAI/CvL,KAAK6L,QAAQoF,MACjB,CACI,GAAIpO,GAAa7C,KAAK6L,QAAQ6D,YAAY7M,WAAa0I,EAAc1I,UAErE0I,GAAcuF,QAAQI,YAAclR,KAAKuI,WAGrCgD,EAAc4F,YAEd5F,EAAcuF,QAAQM,aAClBpR,KAAK0I,eAAerD,EACpBrF,KAAK0I,eAAepD,EACpBtF,KAAK0I,eAAenD,EACpBvF,KAAK0I,eAAelD,EACnBxF,KAAK0I,eAAejD,GAAI8F,EAAc1I,WAAc,EACpD7C,KAAK0I,eAAehD,GAAI6F,EAAc1I,WAAc,GAIzD0I,EAAcuF,QAAQM,aAClBpR,KAAK0I,eAAerD,EACpBrF,KAAK0I,eAAepD,EACpBtF,KAAK0I,eAAenD,EACpBvF,KAAK0I,eAAelD,EACpBxF,KAAK0I,eAAejD,GAAK8F,EAAc1I,WACvC7C,KAAK0I,eAAehD,GAAK6F,EAAc1I,YAI3C0I,EAAc8F,gBAAkB9F,EAAcZ,YAAc3K,KAAK6L,QAAQ6D,YAAY/E,YAErFY,EAAcZ,UAAY3K,KAAK6L,QAAQ6D,YAAY/E,UACnDY,EAAcuF,QAAQvF,EAAc8F,gBAAmB9F,EAAcZ,YAAc1K,EAAKsB,WAAWE,OAIvG,IAAI6P,GAAMtR,KAAK6L,QAAY,KAAI7L,KAAK6L,QAAQ0F,KAAKhN,EAAIvE,KAAKiM,OAAO1H,EAAIvE,KAAK6L,QAAQ0F,KAAKpK,MAAQnH,KAAKiM,OAAO1H,GAAKvE,KAAK6L,QAAQkE,MAAM5I,MAC/HqK,EAAMxR,KAAK6L,QAAY,KAAI7L,KAAK6L,QAAQ0F,KAAK/M,EAAIxE,KAAKiM,OAAOzH,EAAIxE,KAAK6L,QAAQ0F,KAAKnK,OAASpH,KAAKiM,OAAOzH,GAAKxE,KAAK6L,QAAQkE,MAAM3I,MAElH,YAAdpH,KAAKuP,MAEDvP,KAAKiQ,aAAejQ,KAAKuP,OAEzBvP,KAAKiQ,WAAajQ,KAAKuP,KAGvBvP,KAAKyR,cAAgBxR,EAAKyR,aAAaC,iBAAiB3R,KAAMA,KAAKuP,OAGvEhE,EAAcuF,QAAQc,UACF5R,KAAKyR,cACL,EACA,EACAzR,KAAK6L,QAAQ+E,KAAKzJ,MAClBnH,KAAK6L,QAAQ+E,KAAKxJ,OAClBkK,EAAKzO,EACL2O,EAAK3O,EACL7C,KAAK6L,QAAQ+E,KAAKzJ,MAAQtE,EAC1B7C,KAAK6L,QAAQ+E,KAAKxJ,OAASvE,IAI/C0I,EAAcuF,QAAQc,UACF5R,KAAK6L,QAAQ6D,YAAYmC,OACzB7R,KAAK6L,QAAQ+E,KAAKrM,EAClBvE,KAAK6L,QAAQ+E,KAAKpM,EAClBxE,KAAK6L,QAAQ+E,KAAKzJ,MAClBnH,KAAK6L,QAAQ+E,KAAKxJ,OAClBkK,EAAKzO,EACL2O,EAAK3O,EACL7C,KAAK6L,QAAQ+E,KAAKzJ,MAAQtE,EAC1B7C,KAAK6L,QAAQ+E,KAAKxJ,OAASvE,GAKvD,IAAK,GAAIsB,GAAI,EAAGU,EAAI7E,KAAKoM,SAAS/H,OAAYQ,EAAJV,EAAOA,IAE7CnE,KAAKoM,SAASjI,GAAGyH,cAAcL,EAG/BvL,MAAKgJ,OAELuC,EAAc0D,YAAYI,QAAQ9D,KAgB1CtL,EAAKyL,OAAOoG,UAAY,SAASC,GAE7B,GAAIlG,GAAU5L,EAAK+R,aAAaD,EAChC,KAAIlG,EAAS,KAAM,IAAIiB,OAAM,gBAAkBiF,EAAU,wCAA0C/R,KACnG,OAAO,IAAIC,GAAKyL,OAAOG,IAa3B5L,EAAKyL,OAAOuG,UAAY,SAASC,EAASC,EAAaxH,GAEnD,GAAIkB,GAAU5L,EAAKmS,QAAQH,UAAUC,EAASC,EAAaxH,EAC3D,OAAO,IAAI1K,GAAKyL,OAAOG,IA6B3B5L,EAAKoS,YAAc,SAASxG,GAExB5L,EAAKkM,uBAAuBpI,KAAM/D,MAElCA,KAAKsS,aAAezG,EAEpB7L,KAAKuS,OAAQ,GAGjBtS,EAAKoS,YAAYxO,UAAYsF,OAAOkD,OAAOpM,EAAKkM,uBAAuBtI,WACvE5D,EAAKoS,YAAYxO,UAAUsB,YAAclF,EAAKoS,YAQ9CpS,EAAKoS,YAAYxO,UAAU2O,UAAY,SAAS/G,GAG5CzL,KAAKyS,gBAAkB,GAAIxS,GAAKyS,qBAAqBjH,GAErDzL,KAAKuS,OAAQ,GASjBtS,EAAKoS,YAAYxO,UAAUqG,gBAAkB,WAGzCjK,EAAKyH,cAAc7D,UAAUqG,gBAAgBnG,KAAM/D,OAWvDC,EAAKoS,YAAYxO,UAAU8H,aAAe,SAASJ,IAE3CvL,KAAKiI,SAAWjI,KAAKgI,OAAS,IAAMhI,KAAKoM,SAAS/H,SAElDrE,KAAKuS,OAAMvS,KAAKwS,UAAWjH,EAAcE,IAE7CF,EAAcqD,YAAYI,OAE1BzD,EAAcoH,cAAcC,UAAUrH,EAAcoH,cAAcE,YAElE7S,KAAKyS,gBAAgB5E,MAAM7N,KAAMuL,GACjCvL,KAAKyS,gBAAgBxH,OAAOjL,MAE5BuL,EAAcqD,YAAYQ,UAW9BnP,EAAKoS,YAAYxO,UAAU+H,cAAgB,SAASL,GAEhD,GAAIvL,KAAKiI,WAAWjI,KAAKgI,OAAS,IAAMhI,KAAKoM,SAAS/H,OAAtD,CAEA,GAAIyM,GAAUvF,EAAcuF,OAC5BA,GAAQI,YAAclR,KAAKuI,WAE3BtI,EAAKyH,cAAc7D,UAAUqG,gBAAgBnG,KAAK/D,KAOlD,KAAK,GALD8S,GAAY9S,KAAK0I,eAGjBqK,GAAY,EAEP5O,EAAI,EAAGA,EAAInE,KAAKoM,SAAS/H,OAAQF,IAAK,CAE3C,GAAIsI,GAAQzM,KAAKoM,SAASjI,EAE1B,IAAIsI,EAAMxE,QAAV,CAEA,GAAI4D,GAAUY,EAAMZ,QAChBkE,EAAQlE,EAAQkE,KAIpB,IAFAe,EAAQI,YAAclR,KAAKuI,WAAakE,EAAMzE,MAE3CyE,EAAM1E,UAAsB,EAAV7F,KAAKC,MAAY,EAE/B4Q,IAECjC,EAAQM,aAAa0B,EAAUzN,EAAGyN,EAAUxN,EAAGwN,EAAUvN,EAAGuN,EAAUtN,EAAGsN,EAAUrN,GAAIqN,EAAUpN,IACjGqN,GAAY,GAIhBjC,EAAQc,UAAU/F,EAAQ6D,YAAYmC,OACjB9B,EAAMxL,EACNwL,EAAMvL,EACNuL,EAAM5I,MACN4I,EAAM3I,OACJqF,EAAMR,OAAQ,GAAM8D,EAAM5I,MAAQsF,EAAMrG,MAAM7B,EAAKkI,EAAM9E,SAASpD,EAAK,GAAO,EAC9EkI,EAAMR,OAAQ,GAAM8D,EAAM3I,OAASqF,EAAMrG,MAAM5B,EAAKiI,EAAM9E,SAASnD,EAAK,GAAO,EACjFuL,EAAM5I,MAAQsF,EAAMrG,MAAM7B,EAC1BwL,EAAM3I,OAASqF,EAAMrG,MAAM5B,OAGpD,CACQuO,IAAUA,GAAY,GAE1B9S,EAAKyH,cAAc7D,UAAUqG,gBAAgBnG,KAAK0I,EAElD,IAAIuG,GAAiBvG,EAAM/D,cAIvB6C,GAAc4F,YAEdL,EAAQM,aAAa4B,EAAe3N,EAAG2N,EAAe1N,EAAG0N,EAAezN,EAAGyN,EAAexN,EAAuB,EAApBwN,EAAevN,GAA4B,EAApBuN,EAAetN,IAInIoL,EAAQM,aAAa4B,EAAe3N,EAAG2N,EAAe1N,EAAG0N,EAAezN,EAAGyN,EAAexN,EAAGwN,EAAevN,GAAIuN,EAAetN,IAGnIoL,EAAQc,UAAU/F,EAAQ6D,YAAYmC,OACjB9B,EAAMxL,EACNwL,EAAMvL,EACNuL,EAAM5I,MACN4I,EAAM3I,OACJqF,EAAMR,OAAQ,GAAM8D,EAAM5I,MAAS,GAAO,EAC1CsF,EAAMR,OAAQ,GAAM8D,EAAM3I,OAAU,GAAO,EAC7C2I,EAAM5I,MACN4I,EAAM3I,aAqBvCnH,EAAKgT,YAAc,WAQfjT,KAAKiI,SAAU,EAQfjI,KAAKoI,YAAa,GAGtBnI,EAAKgT,YAAYpP,UAAUsB,YAAclF,EAAKgT,YA4B9ChT,EAAKiT,KAAO,SAASC,EAAMC,GAQvBpT,KAAKqT,OAASC,SAASC,cAAc,UAOrCvT,KAAK8Q,QAAU9Q,KAAKqT,OAAOG,WAAW,MAOtCxT,KAAK6C,WAAa,EAElB5C,EAAKyL,OAAO3H,KAAK/D,KAAMC,EAAKmS,QAAQqB,WAAWzT,KAAKqT,SAEpDrT,KAAK0T,QAAQP,GACbnT,KAAK2T,SAASP,IAKlBnT,EAAKiT,KAAKrP,UAAYsF,OAAOkD,OAAOpM,EAAKyL,OAAO7H,WAChD5D,EAAKiT,KAAKrP,UAAUsB,YAAclF,EAAKiT,KAQvC/J,OAAOC,eAAenJ,EAAKiT,KAAKrP,UAAW,SACvCwF,IAAK,WASD,MAPGrJ,MAAKwJ,QAEJxJ,KAAK4T,aACL5T,KAAKwJ,OAAQ,GAIVxJ,KAAKoG,MAAM7B,EAAIvE,KAAK6L,QAAQkE,MAAM5I,OAE7CmC,IAAK,SAASC,GACVvJ,KAAKoG,MAAM7B,EAAIgF,EAAQvJ,KAAK6L,QAAQkE,MAAM5I,MAC1CnH,KAAKsM,OAAS/C,KAUtBJ,OAAOC,eAAenJ,EAAKiT,KAAKrP,UAAW,UACvCwF,IAAK,WASD,MAPGrJ,MAAKwJ,QAEJxJ,KAAK4T,aACL5T,KAAKwJ,OAAQ,GAITxJ,KAAKoG,MAAM5B,EAAIxE,KAAK6L,QAAQkE,MAAM3I,QAE9CkC,IAAK,SAASC,GACVvJ,KAAKoG,MAAM5B,EAAI+E,EAAQvJ,KAAK6L,QAAQkE,MAAM3I,OAC1CpH,KAAKuM,QAAUhD,KAqBvBtJ,EAAKiT,KAAKrP,UAAU8P,SAAW,SAASP,GAEpCA,EAAQA,MACRA,EAAMS,KAAOT,EAAMS,MAAQ,kBAC3BT,EAAMU,KAAOV,EAAMU,MAAQ,QAC3BV,EAAMW,MAAQX,EAAMW,OAAS,OAC7BX,EAAMY,OAASZ,EAAMY,QAAU,QAC/BZ,EAAMa,gBAAkBb,EAAMa,iBAAmB,EACjDb,EAAMc,SAAWd,EAAMc,WAAY,EACnCd,EAAMe,cAAgBf,EAAMe,eAAiB,IAE7Cf,EAAMgB,WAAahB,EAAMgB,aAAc,EACvChB,EAAMiB,gBAAkBjB,EAAMiB,iBAAmBnS,KAAKC,GAAK,EAC3DiR,EAAMkB,mBAAqBlB,EAAMkB,oBAAsB,EACvDlB,EAAMmB,gBAAkBnB,EAAMmB,iBAAmB,QAEjDvU,KAAKoT,MAAQA,EACbpT,KAAKwJ,OAAQ,GASjBvJ,EAAKiT,KAAKrP,UAAU6P,QAAU,SAASP,GAEnCnT,KAAKmT,KAAOA,EAAKqB,YAAc,IAC/BxU,KAAKwJ,OAAQ,GASjBvJ,EAAKiT,KAAKrP,UAAU+P,WAAa,WAE7B5T,KAAK6L,QAAQ6D,YAAY7M,WAAa7C,KAAK6C,WAE3C7C,KAAK8Q,QAAQ+C,KAAO7T,KAAKoT,MAAMS,IAE/B,IAAIY,GAAazU,KAAKmT,IAInBnT,MAAKoT,MAAMc,WAASO,EAAazU,KAAKkU,SAASlU,KAAKmT,MASvD,KAAK,GANDuB,GAAQD,EAAWE,MAAM,kBAGzBC,KACAC,EAAe,EACfC,EAAiB9U,KAAK+U,wBAAwB/U,KAAKoT,MAAMS,MACpD1P,EAAI,EAAGA,EAAIuQ,EAAMrQ,OAAQF,IAClC,CACI,GAAI6Q,GAAYhV,KAAK8Q,QAAQmE,YAAYP,EAAMvQ,IAAIgD,KACnDyN,GAAWzQ,GAAK6Q,EAChBH,EAAe3S,KAAKgT,IAAIL,EAAcG,GAG1C,GAAI7N,GAAQ0N,EAAe7U,KAAKoT,MAAMa,eACnCjU,MAAKoT,MAAMgB,aAAWjN,GAASnH,KAAKoT,MAAMkB,oBAE7CtU,KAAKqT,OAAOlM,OAAUA,EAAQnH,KAAK8Q,QAAQkE,WAAchV,KAAK6C,UAG9D,IAAIsS,GAAaL,EAAeM,SAAWpV,KAAKoT,MAAMa,gBAElD7M,EAAS+N,EAAaT,EAAMrQ,MAC7BrE,MAAKoT,MAAMgB,aAAWhN,GAAUpH,KAAKoT,MAAMkB,oBAE9CtU,KAAKqT,OAAOjM,OAASA,EAASpH,KAAK6C,WAEnC7C,KAAK8Q,QAAQ1K,MAAOpG,KAAK6C,WAAY7C,KAAK6C,YAEvCK,UAAUmS,YAAYrV,KAAK8Q,QAAQwE,UAAU,EAAE,EAAEtV,KAAKqT,OAAOlM,MAAMnH,KAAKqT,OAAOjM,QAElFpH,KAAK8Q,QAAQ+C,KAAO7T,KAAKoT,MAAMS,KAC/B7T,KAAK8Q,QAAQyE,YAAcvV,KAAKoT,MAAMY,OACtChU,KAAK8Q,QAAQkE,UAAYhV,KAAKoT,MAAMa,gBACpCjU,KAAK8Q,QAAQ0E,aAAe,YAG5B,IAAIC,GACAC,CAEJ,IAAG1V,KAAKoT,MAAMgB,WACd,CACIpU,KAAK8Q,QAAQ6E,UAAY3V,KAAKoT,MAAMmB,eAEpC,IAAIqB,GAAgB1T,KAAKsE,IAAIxG,KAAKoT,MAAMiB,iBAAmBrU,KAAKoT,MAAMkB,mBAClEuB,EAAgB3T,KAAKqE,IAAIvG,KAAKoT,MAAMiB,iBAAmBrU,KAAKoT,MAAMkB,kBAEtE,KAAKnQ,EAAI,EAAGA,EAAIuQ,EAAMrQ,OAAQF,IAE1BsR,EAAgBzV,KAAKoT,MAAMa,gBAAkB,EAC7CyB,EAAiB1V,KAAKoT,MAAMa,gBAAkB,EAAI9P,EAAIgR,EAAcL,EAAegB,OAE3D,UAArB9V,KAAKoT,MAAMW,MAEV0B,GAAiBZ,EAAeD,EAAWzQ,GAElB,WAArBnE,KAAKoT,MAAMW,QAEf0B,IAAkBZ,EAAeD,EAAWzQ,IAAM,GAGnDnE,KAAKoT,MAAMU,MAEV9T,KAAK8Q,QAAQiF,SAASrB,EAAMvQ,GAAIsR,EAAgBG,EAAeF,EAAgBG,GAW3F,IAHA7V,KAAK8Q,QAAQ6E,UAAY3V,KAAKoT,MAAMU,KAG/B3P,EAAI,EAAGA,EAAIuQ,EAAMrQ,OAAQF,IAE1BsR,EAAgBzV,KAAKoT,MAAMa,gBAAkB,EAC7CyB,EAAiB1V,KAAKoT,MAAMa,gBAAkB,EAAI9P,EAAIgR,EAAcL,EAAegB,OAE3D,UAArB9V,KAAKoT,MAAMW,MAEV0B,GAAiBZ,EAAeD,EAAWzQ,GAElB,WAArBnE,KAAKoT,MAAMW,QAEf0B,IAAkBZ,EAAeD,EAAWzQ,IAAM,GAGnDnE,KAAKoT,MAAMY,QAAUhU,KAAKoT,MAAMa,iBAE/BjU,KAAK8Q,QAAQkF,WAAWtB,EAAMvQ,GAAIsR,EAAeC,GAGlD1V,KAAKoT,MAAMU,MAEV9T,KAAK8Q,QAAQiF,SAASrB,EAAMvQ,GAAIsR,EAAeC,EAMvD1V,MAAKiW,iBASThW,EAAKiT,KAAKrP,UAAUoS,cAAgB,WAEhCjW,KAAK6L,QAAQ6D,YAAYvI,MAAQnH,KAAKqT,OAAOlM,MAC7CnH,KAAK6L,QAAQ6D,YAAYtI,OAASpH,KAAKqT,OAAOjM,OAC9CpH,KAAK6L,QAAQ+E,KAAKzJ,MAAQnH,KAAK6L,QAAQkE,MAAM5I,MAAQnH,KAAKqT,OAAOlM,MACjEnH,KAAK6L,QAAQ+E,KAAKxJ,OAASpH,KAAK6L,QAAQkE,MAAM3I,OAASpH,KAAKqT,OAAOjM,OAEnEpH,KAAKsM,OAAStM,KAAKqT,OAAOlM,MAC1BnH,KAAKuM,QAAUvM,KAAKqT,OAAOjM,OAG3BpH,KAAK6L,QAAQ6D,YAAYlG,SAU7BvJ,EAAKiT,KAAKrP,UAAU8H,aAAe,SAASJ,GAErCvL,KAAKwJ,QAEJxJ,KAAK6C,WAAa0I,EAAc1I,WAEhC7C,KAAK4T,aACL5T,KAAKwJ,OAAQ,GAGjBvJ,EAAKyL,OAAO7H,UAAU8H,aAAa5H,KAAK/D,KAAMuL,IAUlDtL,EAAKiT,KAAKrP,UAAU+H,cAAgB,SAASL,GAEtCvL,KAAKwJ,QAEJxJ,KAAK6C,WAAa0I,EAAc1I,WAEhC7C,KAAK4T,aACL5T,KAAKwJ,OAAQ,GAGjBvJ,EAAKyL,OAAO7H,UAAU+H,cAAc7H,KAAK/D,KAAMuL,IAUnDtL,EAAKiT,KAAKrP,UAAUkR,wBAA0B,SAASmB,GAEnD,GAAIC,GAAalW,EAAKiT,KAAKkD,oBAAoBF,EAE/C,KAAIC,EACJ,CACIA,IAEA,IAAI9C,GAASpT,EAAKiT,KAAKmD,qBACnBvF,EAAU7Q,EAAKiT,KAAKoD,qBAExBxF,GAAQ+C,KAAOqC,CAEf,IAAI/O,GAAQjF,KAAKqU,KAAKzF,EAAQmE,YAAY,OAAO9N,OAC7CqP,EAAWtU,KAAKqU,KAAKzF,EAAQmE,YAAY,KAAK9N,OAC9CC,EAAS,EAAIoP,CAEjBA,GAAsB,IAAXA,EAAiB,EAE5BnD,EAAOlM,MAAQA,EACfkM,EAAOjM,OAASA,EAEhB0J,EAAQ6E,UAAY,OACpB7E,EAAQ2F,SAAS,EAAG,EAAGtP,EAAOC,GAE9B0J,EAAQ+C,KAAOqC,EAEfpF,EAAQ0E,aAAe,aACvB1E,EAAQ6E,UAAY,OACpB7E,EAAQiF,SAAS,MAAO,EAAGS,EAE3B,IAIIrS,GAAGU,EAJH6R,EAAY5F,EAAQ6F,aAAa,EAAG,EAAGxP,EAAOC,GAAQwP,KACtDC,EAASH,EAAUrS,OACnByS,EAAe,EAAR3P,EAIP4P,EAAM,EACN/H,GAAO,CAGX,KAAI7K,EAAI,EAAOqS,EAAJrS,EAAcA,IACzB,CACI,IAAIU,EAAI,EAAOiS,EAAJjS,EAAUA,GAAK,EAEtB,GAA0B,MAAvB6R,EAAUK,EAAMlS,GACnB,CACImK,GAAO,CACP,OAGR,GAAIA,EAMA,KAJA+H,IAAOD,EAcf,IANAX,EAAWL,OAASU,EAAWrS,EAE/B4S,EAAMF,EAASC,EACf9H,GAAO,EAGH7K,EAAIiD,EAAQjD,EAAIqS,EAAUrS,IAC9B,CACI,IAAIU,EAAI,EAAOiS,EAAJjS,EAAUA,GAAK,EAEtB,GAA0B,MAAvB6R,EAAUK,EAAMlS,GACnB,CACImK,GAAO,CACP,OAGR,GAAIA,EAMA,KAJA+H,IAAOD,EAQfX,EAAWa,QAAU7S,EAAIqS,EACzBL,EAAWf,SAAWe,EAAWL,OAASK,EAAWa,QAErD/W,EAAKiT,KAAKkD,oBAAoBF,GAAaC,EAG/C,MAAOA,IAWXlW,EAAKiT,KAAKrP,UAAUqQ,SAAW,SAASf,GAMpC,IAAK,GAFD8D,GAAS,GACTvC,EAAQvB,EAAKwB,MAAM,MACdxQ,EAAI,EAAGA,EAAIuQ,EAAMrQ,OAAQF,IAClC,CAGI,IAAK,GAFD+S,GAAYlX,KAAKoT,MAAMe,cACvBgD,EAAQzC,EAAMvQ,GAAGwQ,MAAM,KAClB9P,EAAI,EAAGA,EAAIsS,EAAM9S,OAAQQ,IAClC,CACI,GAAIuS,GAAYpX,KAAK8Q,QAAQmE,YAAYkC,EAAMtS,IAAIsC,MAC/CkQ,EAAqBD,EAAYpX,KAAK8Q,QAAQmE,YAAY,KAAK9N,KAC1D,KAANtC,GAAWwS,EAAqBH,GAI5BrS,EAAI,IAEHoS,GAAU,MAEdA,GAAUE,EAAMtS,GAChBqS,EAAYlX,KAAKoT,MAAMe,cAAgBiD,IAIvCF,GAAaG,EACbJ,GAAU,IAAME,EAAMtS,IAI1BV,EAAIuQ,EAAMrQ,OAAO,IAEjB4S,GAAU,MAGlB,MAAOA,IAUXhX,EAAKiT,KAAKrP,UAAU0G,UAAY,SAAS1D,GAQrC,MANG7G,MAAKwJ,QAEJxJ,KAAK4T,aACL5T,KAAKwJ,OAAQ,GAGVvJ,EAAKyL,OAAO7H,UAAU0G,UAAUxG,KAAK/D,KAAM6G,IAStD5G,EAAKiT,KAAKrP,UAAUqI,QAAU,SAASoL,GAGnCtX,KAAK8Q,QAAU,KACf9Q,KAAKqT,OAAS,KAEdrT,KAAK6L,QAAQK,QAA+BuB,SAAvB6J,GAAmC,EAAOA,IAGnErX,EAAKiT,KAAKkD,uBACVnW,EAAKiT,KAAKmD,qBAAuB/C,SAASC,cAAc,UACxDtT,EAAKiT,KAAKoD,sBAAwBrW,EAAKiT,KAAKmD,qBAAqB7C,WAAW,MAoB5EvT,EAAKsX,WAAa,SAASpE,EAAMC,GAE7BnT,EAAKkM,uBAAuBpI,KAAK/D,MAUjCA,KAAKwX,UAAY,EAUjBxX,KAAKyX,WAAa,EAOlBzX,KAAK0X,SAEL1X,KAAK0T,QAAQP,GACbnT,KAAK2T,SAASP,GACdpT,KAAK4T,aAOL5T,KAAKwJ,OAAQ,GAIjBvJ,EAAKsX,WAAW1T,UAAYsF,OAAOkD,OAAOpM,EAAKkM,uBAAuBtI,WACtE5D,EAAKsX,WAAW1T,UAAUsB,YAAclF,EAAKsX,WAQ7CtX,EAAKsX,WAAW1T,UAAU6P,QAAU,SAASP,GAEzCnT,KAAKmT,KAAOA,GAAQ,IACpBnT,KAAKwJ,OAAQ,GAWjBvJ,EAAKsX,WAAW1T,UAAU8P,SAAW,SAASP,GAE1CA,EAAQA,MACRA,EAAMW,MAAQX,EAAMW,OAAS,OAC7B/T,KAAKoT,MAAQA,CAEb,IAAIS,GAAOT,EAAMS,KAAKc,MAAM,IAC5B3U,MAAK2X,SAAW9D,EAAKA,EAAKxP,OAAS,GACnCrE,KAAKoV,SAAWvB,EAAKxP,QAAU,EAAIuT,SAAS/D,EAAKA,EAAKxP,OAAS,GAAI,IAAMpE,EAAKsX,WAAWM,MAAM7X,KAAK2X,UAAUG,KAE9G9X,KAAKwJ,OAAQ,EACbxJ,KAAKuP,KAAO6D,EAAM7D,MAStBtP,EAAKsX,WAAW1T,UAAU+P,WAAa,WAWnC,IAAI,GATAgD,GAAO3W,EAAKsX,WAAWM,MAAM7X,KAAK2X,UAClC5R,EAAM,GAAI9F,GAAKgE,MACf8T,EAAe,KACfC,KACAnD,EAAe,EACfD,KACAkC,EAAO,EACP1Q,EAAQpG,KAAKoV,SAAWwB,EAAKkB,KAEzB3T,EAAI,EAAGA,EAAInE,KAAKmT,KAAK9O,OAAQF,IACrC,CACI,GAAI8T,GAAWjY,KAAKmT,KAAK+E,WAAW/T,EAEpC,IAAG,iBAAiBgU,KAAKnY,KAAKmT,KAAKiF,OAAOjU,IAEtCyQ,EAAWtQ,KAAKyB,EAAIxB,GACpBsQ,EAAe3S,KAAKgT,IAAIL,EAAc9O,EAAIxB,GAC1CuS,IAEA/Q,EAAIxB,EAAI,EACRwB,EAAIvB,GAAKoS,EAAKzB,WACd4C,EAAe,SARnB,CAYA,GAAIM,GAAWzB,EAAKoB,MAAMC,EAEtBI,KAEDN,GAAgBM,EAASC,QAAQP,KAEhChS,EAAIxB,GAAK8T,EAASC,QAAQP,IAG9BC,EAAM1T,MAAMuH,QAAQwM,EAASxM,QAASiL,KAAMA,EAAMmB,SAAUA,EAAUtQ,SAAU,GAAI1H,GAAKgE,MAAM8B,EAAIxB,EAAI8T,EAASE,QAASxS,EAAIvB,EAAI6T,EAASG,WAC1IzS,EAAIxB,GAAK8T,EAASI,SAElBV,EAAeE,IAGnBrD,EAAWtQ,KAAKyB,EAAIxB,GACpBsQ,EAAe3S,KAAKgT,IAAIL,EAAc9O,EAAIxB,EAE1C,IAAImU,KAEJ,KAAIvU,EAAI,EAAQ2S,GAAL3S,EAAWA,IACtB,CACI,GAAIwU,GAAc,CACM,WAArB3Y,KAAKoT,MAAMW,MAEV4E,EAAc9D,EAAeD,EAAWzQ,GAEf,WAArBnE,KAAKoT,MAAMW,QAEf4E,GAAe9D,EAAeD,EAAWzQ,IAAM,GAEnDuU,EAAiBpU,KAAKqU,GAG1B,GAAIC,GAAc5Y,KAAKoM,SAAS/H,OAC5BwU,EAAWb,EAAM3T,OACjBkL,EAAOvP,KAAKuP,MAAQ,QAExB,KAAIpL,EAAI,EAAO0U,EAAJ1U,EAAcA,IACzB,CACI,GAAIoB,GAAQqT,EAAJzU,EAAkBnE,KAAKoM,SAASjI,GAAKnE,KAAK0X,MAAMoB,KAEpDvT,GAAGA,EAAEyK,WAAWgI,EAAM7T,GAAG0H,SACxBtG,EAAI,GAAItF,GAAKyL,OAAOsM,EAAM7T,GAAG0H,SAElCtG,EAAEoC,SAASpD,GAAKyT,EAAM7T,GAAGwD,SAASpD,EAAImU,EAAiBV,EAAM7T,GAAG2S,OAAS1Q,EACzEb,EAAEoC,SAASnD,EAAIwT,EAAM7T,GAAGwD,SAASnD,EAAI4B,EACrCb,EAAEa,MAAM7B,EAAIgB,EAAEa,MAAM5B,EAAI4B,EACxBb,EAAEgK,KAAOA,EACJhK,EAAE8C,QAAQrI,KAAKwM,SAASjH,GAKjC,KAAMvF,KAAKoM,SAAS/H,OAASwU,GAC7B,CACI,GAAIpM,GAAQzM,KAAKsN,WAAWtN,KAAKoM,SAAS/H,OAAS,EACnDrE,MAAK0X,MAAMpT,KAAKmI,GAChBzM,KAAK4M,YAAYH,GAGrBzM,KAAKwX,UAAY3C,EAAezO,EAChCpG,KAAKyX,YAAc1R,EAAIvB,EAAIoS,EAAKzB,YAAc/O,GASlDnG,EAAKsX,WAAW1T,UAAUqG,gBAAkB,WAErClK,KAAKwJ,QAEJxJ,KAAK4T,aACL5T,KAAKwJ,OAAQ,GAGjBvJ,EAAKkM,uBAAuBtI,UAAUqG,gBAAgBnG,KAAK/D,OAG/DC,EAAKsX,WAAWM,SAsBhB5X,EAAK8Y,MAAQ,SAASC,GAElB/Y,EAAKkM,uBAAuBpI,KAAM/D,MAUlCA,KAAK0I,eAAiB,GAAIzI,GAAKmF,OAQ/BpF,KAAKiZ,aAAc,EAQnBjZ,KAAKkZ,mBAAqB,GAAIjZ,GAAKkZ,mBAAmBnZ,MAStDA,KAAKwJ,OAAQ,EAGbxJ,KAAKsI,MAAQtI,KAGbA,KAAKsI,MAAMJ,QAAU,GAAIjI,GAAKiH,UAAU,EAAG,EAAG,IAAQ,KAEtDlH,KAAKoZ,mBAAmBJ,IAI5B/Y,EAAK8Y,MAAMlV,UAAYsF,OAAOkD,OAAQpM,EAAKkM,uBAAuBtI,WAClE5D,EAAK8Y,MAAMlV,UAAUsB,YAAclF,EAAK8Y,MASxC9Y,EAAK8Y,MAAMlV,UAAUwV,uBAAyB,SAASC,GAEnDtZ,KAAKkZ,mBAAmBK,oBAAqBD,IASjDrZ,EAAK8Y,MAAMlV,UAAUqG,gBAAkB,WAEnClK,KAAKuI,WAAa,CAElB,KAAI,GAAIpE,GAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAErCnE,KAAKoM,SAASjI,GAAG+F,iBAGlBlK,MAAKwJ,QAEJxJ,KAAKwJ,OAAQ,EAEbxJ,KAAKkZ,mBAAmB1P,OAAQ,GAGjCxJ,KAAKiZ,aAAYjZ,KAAKkZ,mBAAmBM,UAUhDvZ,EAAK8Y,MAAMlV,UAAUuV,mBAAqB,SAASJ,GAE/ChZ,KAAKgZ,gBAAkBA,GAAmB,EAC1ChZ,KAAKyZ,qBAAuBxZ,EAAKyZ,QAAQ1Z,KAAKgZ,gBAC9C,IAAIW,GAAM3Z,KAAKgZ,gBAAgBxE,SAAS,GACxCmF,GAAM,SAASC,OAAO,EAAG,EAAID,EAAItV,QAAUsV,EAC3C3Z,KAAK6Z,sBAAwB,IAAMF,GASvC1Z,EAAK8Y,MAAMlV,UAAUiW,iBAAmB,WAEpC,MAAO9Z,MAAKkZ,mBAAmBa,MAAMC,QA2BzC,SAAUtW,GAGN,IAAI,GAFAuW,GAAW,EACXC,GAAW,KAAM,MAAO,SAAU,KAC9B3V,EAAI,EAAGA,EAAI2V,EAAQ7V,SAAWX,EAAOyW,wBAAyB5V,EAClEb,EAAOyW,sBAAwBzW,EAAOwW,EAAQ3V,GAAK,yBACnDb,EAAO0W,qBAAuB1W,EAAOwW,EAAQ3V,GAAK,yBAC9Cb,EAAOwW,EAAQ3V,GAAK,8BAGvBb,GAAOyW,wBACRzW,EAAOyW,sBAAwB,SAASE,GACpC,GAAIC,IAAW,GAAIC,OAAOC,UACtBC,EAAavY,KAAKgT,IAAI,EAAG,IAAMoF,EAAWL,IAC1C/T,EAAKxC,EAAOgX,WAAW,WAAaL,EAASC,EAAWG,IAC1DA,EAEF,OADAR,GAAWK,EAAWG,EACfvU,IAIVxC,EAAO0W,uBACR1W,EAAO0W,qBAAuB,SAASlU,GACnCyU,aAAazU,KAIrBxC,EAAOkX,iBAAmBlX,EAAOyW,uBAClCna,MAQHC,EAAKyZ,QAAU,SAASC,GACpB,QAASA,GAAO,GAAK,KAAQ,KAAOA,GAAO,EAAI,KAAQ,KAAY,IAANA,GAAa,MAS9E1Z,EAAK4a,QAAU,SAASC,GACpB,OAAgB,IAAPA,EAAI,IAAU,KAAc,IAAPA,EAAI,IAAU,GAAY,IAAPA,EAAI,IAQlB,kBAA5BC,UAASlX,UAAUiM,OAC1BiL,SAASlX,UAAUiM,KAAO,WACtB,MAAO,UAAUkL,GAUb,QAASC,KAEL,IADA,GAAI9W,GAAIH,UAAUK,OAAQf,EAAO,GAAIxB,OAAMqC,GACpCA,KAAKb,EAAKa,GAAKH,UAAUG,EAEhC,OADAb,GAAO4X,EAAUC,OAAO7X,GACjByG,EAAOtG,MAAMzD,eAAgBib,GAAQjb,KAAOgb,EAAS1X,GAbhE,GAAIyG,GAAS/J,KAAMmE,EAAIH,UAAUK,OAAS,EAAG6W,IAC7C,IAAI/W,EAAI,EAGJ,IADA+W,EAAU7W,OAASF,EACZA,KAAK+W,EAAU/W,GAAKH,UAAUG,EAAI,EAG7C,IAAsB,kBAAX4F,GAAuB,KAAM,IAAIqR,UAc5C,OALAH,GAAMpX,UAAY,QAAUwX,GAAEC,GAE1B,MADIA,KAAOD,EAAExX,UAAYyX,GACnBtb,eAAgBqb,GAAtB,OAAiC,GAAIA,IACtCtR,EAAOlG,WAEHoX,OAWnBhb,EAAKsb,YAAc,WAEf,GAAIC,IAAgB,qBAAsB,qBAAsB,oBAEhE,KAAI9X,OAAO+X,cAYN,MAAI/X,QAAOgY,eAEL,GAAIhY,QAAOgY,gBAIX,CAhBP,KAAK,GAAIvX,GAAE,EAAGA,EAAEqX,EAAanX,OAAQF,IAEjC,IACI,MAAO,IAAIT,QAAO+X,cAAcD,EAAarX,IAEjD,MAAMwX,MAiDlB1b,EAAK2b,0BAA4B,WAE7B,GAAwB,mBAAbtI,UAA0B,OAAO,CAC5C,IAAID,GAASC,SAASC,cAAc,SACpCF,GAAOlM,MAAQ,EACfkM,EAAOjM,OAAS,CAChB,IAAI0J,GAAUuC,EAAOG,WAAW,KAMhC,OALA1C,GAAQ6E,UAAY,OACpB7E,EAAQ2F,SAAS,EAAE,EAAE,EAAE,GACvB3F,EAAQC,yBAA2B,WACnCD,EAAQ6E,UAAY,OACpB7E,EAAQ2F,SAAS,EAAE,EAAE,EAAE,GAC0B,IAA1C3F,EAAQ6F,aAAa,EAAE,EAAE,EAAE,GAAGC,KAAK,IAW9C3W,EAAK4b,kBAAoB,SAASC,GAE9B,GAAIA,EAAS,GAAiC,KAA3BA,EAAUA,EAAS,GAClC,MAAOA,EAIP,KADA,GAAI7E,GAAS,EACG6E,EAAT7E,GAAiBA,IAAW,CACnC,OAAOA,IA0BfhX,EAAK8b,aAIDhY,KAAM,SAAoBiY,GACnBA,IACCA,EAAMA,EAAInY,WAAamY,EACvB/b,EAAK8b,YAAYE,MAAMD,KAU/BC,MAAO,SAAeD,GAQlBA,EAAIE,UAAY,SAAmBC,GAG/B,MAFAnc,MAAKoc,WAAapc,KAAKoc,eAEhBpc,KAAKoc,WAAWD,GAAanc,KAAKoc,WAAWD,GAAWrY,YAWnEkY,EAAIK,KAAOL,EAAIM,cAAgB,SAAcH,EAAWvF,GAepD,GAdA5W,KAAKoc,WAAapc,KAAKoc,eAGC,gBAAdD,KACNvF,EAAOuF,EACPA,EAAYA,EAAUlZ,MAItB2T,GAAQA,EAAK2F,mBAAoB,IACjC3F,EAAO,GAAI3W,GAAKuc,MAAMxc,KAAMmc,EAAWvF,IAIxC5W,KAAKoc,YAAcpc,KAAKoc,WAAWD,GAAY,CAC9C,GAGIhY,GAHA+X,EAAYlc,KAAKoc,WAAWD,GAAWrY,MAAM,GAC7CO,EAAS6X,EAAU7X,OACnBoY,EAAKP,EAAU,EAGnB,KAAI/X,EAAI,EAAOE,EAAJF,EAAYsY,EAAKP,IAAY/X,GAKpC,GAHAsY,EAAG1Y,KAAK/D,KAAM4W,GAGXA,EAAK8F,iBACJ,MAAO1c,KAKf,IAAG4W,EAAK+F,QACJ,MAAO3c,MASf,MAJGA,MAAKqI,QAAUrI,KAAKqI,OAAOgU,MAC1Brc,KAAKqI,OAAOgU,KAAKtY,KAAK/D,KAAKqI,OAAQ8T,EAAWvF,GAG3C5W,MAWXgc,EAAInM,GAAKmM,EAAIY,iBAAmB,SAAYT,EAAWM,GAMnD,MALAzc,MAAKoc,WAAapc,KAAKoc,gBAEtBpc,KAAKoc,WAAWD,GAAanc,KAAKoc,WAAWD,QACzC7X,KAAKmY,GAEHzc,MAUXgc,EAAIa,KAAO,SAAcV,EAAWM,GAIhC,QAASK,KACLL,EAAGhZ,MAAMsZ,EAAKC,IAAIb,EAAWW,GAAqB9Y,WAJtDhE,KAAKoc,WAAapc,KAAKoc,cAEvB;GAAIW,GAAO/c,IAMX,OAFA8c,GAAmBG,iBAAmBR,EAE/Bzc,KAAK6P,GAAGsM,EAAWW,IAW9Bd,EAAIgB,IAAMhB,EAAIkB,oBAAsB,SAAaf,EAAWM,GAGxD,GAFAzc,KAAKoc,WAAapc,KAAKoc,gBAEnBpc,KAAKoc,WAAWD,GAChB,MAAOnc,KAKX,KAHA,GAAImd,GAAOnd,KAAKoc,WAAWD,GACvBhY,EAAIsY,EAAKU,EAAK9Y,OAAS,EAErBF,IAAM,IACLgZ,EAAKhZ,KAAOsY,GAAMU,EAAKhZ,GAAG8Y,mBAAqBR,IAC9CU,EAAKtQ,OAAO1I,EAAG,EAQvB,OAJmB,KAAhBgZ,EAAK9Y,cACGrE,MAAKoc,WAAWD,GAGpBnc,MASXgc,EAAIoB,mBAAqB,SAA4BjB,GAGjD,MAFAnc,MAAKoc,WAAapc,KAAKoc,eAEnBpc,KAAKoc,WAAWD,UAGbnc,MAAKoc,WAAWD,GAEhBnc,MAJIA,QAmBvBC,EAAKuc,MAAQ,SAASzS,EAAQsT,EAAMzG,GAEhC5W,KAAKuc,iBAAkB,EAWvBvc,KAAK2c,SAAU,EAWf3c,KAAK0c,kBAAmB,EASxB1c,KAAK+J,OAASA,EASd/J,KAAKiD,KAAOoa,EASZrd,KAAK4W,KAAOA,EAGZ5W,KAAKsd,QAAU1G,EASf5W,KAAKud,UAAYhD,KAAKiD,OAQ1Bvd,EAAKuc,MAAM3Y,UAAU4Z,gBAAkB,WACnCzd,KAAK2c,SAAU,GAQnB1c,EAAKuc,MAAM3Y,UAAU6Z,yBAA2B,WAC5C1d,KAAK0c,kBAAmB,GA0C5Bzc,EAAK0d,SAOL1d,EAAK0d,MAAMC,YAAc,SAAS1Z,GAE9B,GAAI2Z,IAAO,EAEPC,EAAI5Z,EAAEG,QAAU,CACpB,IAAO,EAAJyZ,EAAO,QAIV,KAAI,GAFAC,MACAC,KACI7Z,EAAI,EAAO2Z,EAAJ3Z,EAAOA,IAAK6Z,EAAI1Z,KAAKH,EAEpCA,GAAI,CAEJ,KADA,GAAI8Z,GAAKH,EACHG,EAAK,GACX,CACI,GAAIC,GAAKF,GAAK7Z,EAAE,GAAG8Z,GACfE,EAAKH,GAAK7Z,EAAE,GAAG8Z,GACfG,EAAKJ,GAAK7Z,EAAE,GAAG8Z,GAEfI,EAAKna,EAAE,EAAEga,GAAMI,EAAKpa,EAAE,EAAEga,EAAG,GAC3BK,EAAKra,EAAE,EAAEia,GAAMK,EAAKta,EAAE,EAAEia,EAAG,GAC3BM,EAAKva,EAAE,EAAEka,GAAMM,EAAKxa,EAAE,EAAEka,EAAG,GAE3BO,GAAW,CACf,IAAG1e,EAAK0d,MAAMiB,QAAQP,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIb,GAC9C,CACIc,GAAW,CACX,KAAI,GAAI9Z,GAAI,EAAOoZ,EAAJpZ,EAAQA,IACvB,CACI,GAAIga,GAAKb,EAAInZ,EACb,IAAGga,IAAOX,GAAMW,IAAOV,GAAMU,IAAOT,GAEjCne,EAAK0d,MAAMmB,iBAAiB5a,EAAE,EAAE2a,GAAK3a,EAAE,EAAE2a,EAAG,GAAIR,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAK,CACxEC,GAAW,CACX,SAKZ,GAAGA,EAECZ,EAAIzZ,KAAK4Z,EAAIC,EAAIC,GACjBJ,EAAInR,QAAQ1I,EAAE,GAAG8Z,EAAI,GACrBA,IACA9Z,EAAI,MAEH,IAAGA,IAAM,EAAE8Z,EAChB,CAGI,IAAGJ,EAcC,MAAO,KAVP,KAFAE,KACAC,KACI7Z,EAAI,EAAO2Z,EAAJ3Z,EAAOA,IAAK6Z,EAAI1Z,KAAKH,EAEhCA,GAAI,EACJ8Z,EAAKH,EAELD,GAAO,GAWnB,MADAE,GAAIzZ,KAAK0Z,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACtBD,GAkBX9d,EAAK0d,MAAMmB,iBAAmB,SAASC,EAAIC,EAAIX,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAE/D,GAAIO,GAAMR,EAAGJ,EACTa,EAAMR,EAAGJ,EACTa,EAAMZ,EAAGF,EACTe,EAAMZ,EAAGF,EACTe,EAAMN,EAAGV,EACTiB,EAAMN,EAAGV,EAETiB,EAAQN,EAAIA,EAAIC,EAAIA,EACpBM,EAAQP,EAAIE,EAAID,EAAIE,EACpBK,EAAQR,EAAII,EAAIH,EAAII,EACpBI,EAAQP,EAAIA,EAAIC,EAAIA,EACpBO,EAAQR,EAAIE,EAAID,EAAIE,EAEpBM,EAAW,GAAKL,EAAQG,EAAQF,EAAQA,GACxCK,GAAKH,EAAQD,EAAQD,EAAQG,GAASC,EACtCE,GAAKP,EAAQI,EAAQH,EAAQC,GAASG,CAG1C,OAAQC,IAAK,GAAOC,GAAK,GAAe,EAARD,EAAIC,GAUxC7f,EAAK0d,MAAMiB,QAAU,SAASP,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIb,GAElD,OAASS,EAAGE,IAAKC,EAAGF,IAAOA,EAAGF,IAAKK,EAAGF,IAAO,IAAOX,GAYxD5d,EAAK8f,mBAAqB,aAW1B9f,EAAK+f,oBAAsB,SAASvU,EAAIwU,GAEpC,MAAOhgB,GAAKigB,eAAezU,EAAIwU,EAAWxU,EAAG0U,gBAUjDlgB,EAAKmgB,sBAAwB,SAAS3U,EAAIwU,GAEtC,MAAOhgB,GAAKigB,eAAezU,EAAIwU,EAAWxU,EAAG4U,kBAYjDpgB,EAAKigB,eAAiB,SAASzU,EAAIwU,EAAWK,GAE1C,GAAIC,GAAMN,EAAUO,KAAK,MACrB/Q,EAAShE,EAAGgV,aAAaH,EAI7B,OAHA7U,GAAGiV,aAAajR,EAAQ8Q,GACxB9U,EAAGkV,cAAclR,GAEZhE,EAAGmV,mBAAmBnR,EAAQhE,EAAGoV,gBAM/BpR,GAJH/L,OAAOH,QAAQC,IAAIiI,EAAGqV,iBAAiBrR,IAChC,OAcfxP,EAAK8gB,eAAiB,SAAStV,EAAIuV,EAAWC,GAE1C,GAAIC,GAAiBjhB,EAAKmgB,sBAAsB3U,EAAIwV,GAChDE,EAAelhB,EAAK+f,oBAAoBvU,EAAIuV,GAE5CI,EAAgB3V,EAAG4V,eAWvB,OATA5V,GAAG6V,aAAaF,EAAeD,GAC/B1V,EAAG6V,aAAaF,EAAeF,GAC/BzV,EAAG8V,YAAYH,GAEV3V,EAAG+V,oBAAoBJ,EAAe3V,EAAGgW,cAE1C/d,OAAOH,QAAQC,IAAI,gCAGhB4d,GAaXnhB,EAAKyhB,WAAa,SAASjW,GAOvBzL,KAAK2B,KAAO1B,EAAK0B,OAMjB3B,KAAKyL,GAAKA,EAOVzL,KAAK2hB,QAAU,KAOf3hB,KAAKihB,aACD,wBACA,8BACA,uBACA,8BACA,oBACA,kEACA,KAQJjhB,KAAK4hB,aAAe,EAQpB5hB,KAAK6hB,UAAW,EAOhB7hB,KAAKwJ,OAAQ,EAQbxJ,KAAK8hB,cAEL9hB,KAAK+hB,QAGT9hB,EAAKyhB,WAAW7d,UAAUsB,YAAclF,EAAKyhB,WAO7CzhB,EAAKyhB,WAAW7d,UAAUke,KAAO,WAE7B,GAAItW,GAAKzL,KAAKyL,GAEVkW,EAAU1hB,EAAK8gB,eAAetV,EAAIzL,KAAKghB,WAAa/gB,EAAKyhB,WAAWM,iBAAkBhiB,KAAKihB,YAE/FxV,GAAGwW,WAAWN,GAGd3hB,KAAKkiB,SAAWzW,EAAG0W,mBAAmBR,EAAS,YAC/C3hB,KAAKoiB,iBAAmB3W,EAAG0W,mBAAmBR,EAAS,oBACvD3hB,KAAKqiB,aAAe5W,EAAG0W,mBAAmBR,EAAS,gBACnD3hB,KAAKsiB,WAAa7W,EAAG0W,mBAAmBR,EAAS,cAGjD3hB,KAAKuiB,gBAAkB9W,EAAG+W,kBAAkBb,EAAS,mBACrD3hB,KAAKyiB,cAAgBhX,EAAG+W,kBAAkBb,EAAS,iBACnD3hB,KAAK0iB,eAAiBjX,EAAG+W,kBAAkBb,EAAS,UAQzB,KAAxB3hB,KAAK0iB,iBAEJ1iB,KAAK0iB,eAAiB,GAG1B1iB,KAAK8hB,YAAc9hB,KAAKuiB,gBAAiBviB,KAAKyiB,cAAeziB,KAAK0iB,eAKlE,KAAK,GAAIC,KAAO3iB,MAAK4iB,SAGjB5iB,KAAK4iB,SAASD,GAAKE,gBAAkBpX,EAAG0W,mBAAmBR,EAASgB,EAGxE3iB,MAAK8iB,eAEL9iB,KAAK2hB,QAAUA,GAWnB1hB,EAAKyhB,WAAW7d,UAAUif,aAAe,WAErC9iB,KAAK4hB,aAAe,CACpB,IACImB,GADAtX,EAAKzL,KAAKyL,EAGd,KAAK,GAAIkX,KAAO3iB,MAAK4iB,SACrB,CACIG,EAAU/iB,KAAK4iB,SAASD,EAExB,IAAI1f,GAAO8f,EAAQ9f,IAEN,eAATA,GAEA8f,EAAQC,OAAQ,EAEM,OAAlBD,EAAQxZ,OAERvJ,KAAKijB,cAAcF,IAGT,SAAT9f,GAA4B,SAATA,GAA4B,SAATA,GAG3C8f,EAAQG,UAAW,EACnBH,EAAQI,cAAgB,EAEX,SAATlgB,EAEA8f,EAAQK,OAAS3X,EAAG4X,iBAEN,SAATpgB,EAEL8f,EAAQK,OAAS3X,EAAG6X,iBAEN,SAATrgB,IAEL8f,EAAQK,OAAS3X,EAAG8X,oBAMxBR,EAAQK,OAAS3X,EAAG,UAAYxI,GAI5B8f,EAAQI,cAFC,OAATlgB,GAA0B,OAATA,EAEO,EAEV,OAATA,GAA0B,OAATA,EAEE,EAEV,OAATA,GAA0B,OAATA,EAEE,EAIA,KAYxChD,EAAKyhB,WAAW7d,UAAUof,cAAgB,SAASF,GAE/C,GAAKA,EAAQxZ,OAAUwZ,EAAQxZ,MAAMmG,aAAgBqT,EAAQxZ,MAAMmG,YAAYC,UAA/E,CAKA,GAAIlE,GAAKzL,KAAKyL,EAMd,IAJAA,EAAG+X,cAAc/X,EAAG,UAAYzL,KAAK4hB,eACrCnW,EAAGgY,YAAYhY,EAAGiY,WAAYX,EAAQxZ,MAAMmG,YAAYiU,YAAYlY,EAAGvF,KAGnE6c,EAAQa,YACZ,CACI,GAAIhN,GAAOmM,EAAQa,YAYfC,EAAajN,EAAc,UAAIA,EAAKiN,UAAYpY,EAAGhK,OACnDqiB,EAAalN,EAAc,UAAIA,EAAKkN,UAAYrY,EAAGhK,OACnDsiB,EAASnN,EAAU,MAAIA,EAAKmN,MAAQtY,EAAGuY,cACvCC,EAASrN,EAAU,MAAIA,EAAKqN,MAAQxY,EAAGuY,cACvCE,EAAUtN,EAAc,UAAInL,EAAG0Y,UAAY1Y,EAAG2Y,IAUlD,IARIxN,EAAKyN,SAELN,EAAQtY,EAAG6Y,OACXL,EAAQxY,EAAG6Y,QAGf7Y,EAAG8Y,YAAY9Y,EAAG+Y,sBAAuB5N,EAAK6N,OAE1C7N,EAAKzP,MACT,CACI,GAAIA,GAASyP,EAAU,MAAIA,EAAKzP,MAAQ,IACpCC,EAAUwP,EAAW,OAAIA,EAAKxP,OAAS,EACvCsd,EAAU9N,EAAW,OAAIA,EAAK8N,OAAS,CAG3CjZ,GAAGkZ,WAAWlZ,EAAGiY,WAAY,EAAGQ,EAAQ/c,EAAOC,EAAQsd,EAAQR,EAAQzY,EAAGmZ,cAAe,UAKzFnZ,GAAGkZ,WAAWlZ,EAAGiY,WAAY,EAAGQ,EAAQzY,EAAG2Y,KAAM3Y,EAAGmZ,cAAe7B,EAAQxZ,MAAMmG,YAAYmC,OAGjGpG,GAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGqZ,mBAAoBjB,GACvDpY,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGsZ,mBAAoBjB,GACvDrY,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGuZ,eAAgBjB,GACnDtY,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGwZ,eAAgBhB,GAGvDxY,EAAGyZ,UAAUnC,EAAQF,gBAAiB7iB,KAAK4hB,cAE3CmB,EAAQC,OAAQ,EAEhBhjB,KAAK4hB,iBAST3hB,EAAKyhB,WAAW7d,UAAUshB,aAAe,WAErCnlB,KAAK4hB,aAAe,CACpB,IAAImB,GACAtX,EAAKzL,KAAKyL,EAGd,KAAK,GAAIkX,KAAO3iB,MAAK4iB,SAEjBG,EAAU/iB,KAAK4iB,SAASD,GAEM,IAA1BI,EAAQI,cAEJJ,EAAQG,YAAa,EAErBH,EAAQK,OAAOrf,KAAK0H,EAAIsX,EAAQF,gBAAiBE,EAAQjd,UAAWid,EAAQxZ,OAI5EwZ,EAAQK,OAAOrf,KAAK0H,EAAIsX,EAAQF,gBAAiBE,EAAQxZ,OAG9B,IAA1BwZ,EAAQI,cAEbJ,EAAQK,OAAOrf,KAAK0H,EAAIsX,EAAQF,gBAAiBE,EAAQxZ,MAAMhF,EAAGwe,EAAQxZ,MAAM/E,GAEjD,IAA1Bue,EAAQI,cAEbJ,EAAQK,OAAOrf,KAAK0H,EAAIsX,EAAQF,gBAAiBE,EAAQxZ,MAAMhF,EAAGwe,EAAQxZ,MAAM/E,EAAGue,EAAQxZ,MAAM6b,GAElE,IAA1BrC,EAAQI,cAEbJ,EAAQK,OAAOrf,KAAK0H,EAAIsX,EAAQF,gBAAiBE,EAAQxZ,MAAMhF,EAAGwe,EAAQxZ,MAAM/E,EAAGue,EAAQxZ,MAAM6b,EAAGrC,EAAQxZ,MAAM8b,GAE5F,cAAjBtC,EAAQ9f,OAET8f,EAAQC,OAERvX,EAAG+X,cAAc/X,EAAG,UAAYzL,KAAK4hB,eAElCmB,EAAQxZ,MAAMmG,YAAY4V,OAAO7Z,EAAGvF,IAEnCjG,EAAKslB,UAAU9Z,EAAGvF,IAAI+P,cAAc8M,EAAQxZ,MAAMmG,aAKlDjE,EAAGgY,YAAYhY,EAAGiY,WAAYX,EAAQxZ,MAAMmG,YAAYiU,YAAYlY,EAAGvF,KAI3EuF,EAAGyZ,UAAUnC,EAAQF,gBAAiB7iB,KAAK4hB,cAC3C5hB,KAAK4hB,gBAIL5hB,KAAKijB,cAAcF,KAYnC9iB,EAAKyhB,WAAW7d,UAAUqI,QAAU,WAEhClM,KAAKyL,GAAG+Z,cAAexlB,KAAK2hB,SAC5B3hB,KAAK4iB,SAAW,KAChB5iB,KAAKyL,GAAK,KAEVzL,KAAK8hB,WAAa,MAStB7hB,EAAKyhB,WAAWM,kBACZ,kCACA,gCACA,yBAEA,iCACA,6BAEA,8BACA,uBAEA,uCAEA,oBACA,qGACA,oCACA,wFACA,gDACA,KAYJ/hB,EAAKwlB,eAAiB,SAASha,GAO3BzL,KAAK2B,KAAO1B,EAAK0B,OAMjB3B,KAAKyL,GAAKA,EAOVzL,KAAK2hB,QAAU,KAOf3hB,KAAKihB,aACD,wBACA,8BACA,wBACA,8BACA,oBACA,kEACA,KAQJjhB,KAAKghB,WACD,kCACA,iCACA,yBACA,6BACA,gCACA,0BAEA,iCACA,6BACA,wBAEA,8BACA,wBAEA,uCAEA,oBACA,aACA,yCACA,8DACA,8DACA,2DACA,uEACA,oCAEA,sBACA,KAQJhhB,KAAK4hB,aAAe,EAEpB5hB,KAAK+hB,QAGT9hB,EAAKwlB,eAAe5hB,UAAUsB,YAAclF,EAAKwlB,eAOjDxlB,EAAKwlB,eAAe5hB,UAAUke,KAAO,WAEjC,GAAItW,GAAKzL,KAAKyL,GAEVkW,EAAU1hB,EAAK8gB,eAAetV,EAAIzL,KAAKghB,UAAWhhB,KAAKihB,YAE3DxV,GAAGwW,WAAWN,GAGd3hB,KAAKkiB,SAAWzW,EAAG0W,mBAAmBR,EAAS,YAE/C3hB,KAAKoiB,iBAAmB3W,EAAG0W,mBAAmBR,EAAS,oBACvD3hB,KAAKqiB,aAAe5W,EAAG0W,mBAAmBR,EAAS,gBACnD3hB,KAAKsiB,WAAa7W,EAAG0W,mBAAmBR,EAAS,cACjD3hB,KAAK0lB,QAAUja,EAAG0W,mBAAmBR,EAAS,WAG9C3hB,KAAKuiB,gBAAkB9W,EAAG+W,kBAAkBb,EAAS,mBACrD3hB,KAAK2lB,eAAiBla,EAAG+W,kBAAkBb,EAAS,kBAEpD3hB,KAAK4lB,OAASna,EAAG+W,kBAAkBb,EAAS,UAC5C3hB,KAAK6lB,UAAYpa,EAAG+W,kBAAkBb,EAAS,aAE/C3hB,KAAKyiB,cAAgBhX,EAAG+W,kBAAkBb,EAAS,iBACnD3hB,KAAK0iB,eAAiBjX,EAAG+W,kBAAkBb,EAAS,UAQzB,KAAxB3hB,KAAK0iB,iBAEJ1iB,KAAK0iB,eAAiB,GAG1B1iB,KAAK8hB,YAAc9hB,KAAKuiB,gBAAiBviB,KAAK2lB,eAAiB3lB,KAAK4lB,OAAQ5lB,KAAK6lB,UAAW7lB,KAAKyiB,cAAeziB,KAAK0iB,gBAIrH1iB,KAAK2hB,QAAUA,GAQnB1hB,EAAKwlB,eAAe5hB,UAAUqI,QAAU,WAEpClM,KAAKyL,GAAG+Z,cAAexlB,KAAK2hB,SAC5B3hB,KAAK4iB,SAAW,KAChB5iB,KAAKyL,GAAK,KAEVzL,KAAK8hB,WAAa,MAYtB7hB,EAAK6lB,YAAc,SAASra,GAOxBzL,KAAK2B,KAAO1B,EAAK0B,OAMjB3B,KAAKyL,GAAKA,EAOVzL,KAAK2hB,QAAU,KAOf3hB,KAAKihB,aACD,2BACA,8BAEA,uBACA,8BAEA,oBACA,yFAEA,KAQJjhB,KAAKghB,WACD,kCACA,gCACA,kCACA,iCACA,6BAGA,8BAGA,oBACA,+DACA,4BACA,qGACA,oCAEA,KAGJhhB,KAAK+hB,QAGT9hB,EAAK6lB,YAAYjiB,UAAUsB,YAAclF,EAAK6lB,YAO9C7lB,EAAK6lB,YAAYjiB,UAAUke,KAAO,WAE9B,GAAItW,GAAKzL,KAAKyL,GAEVkW,EAAU1hB,EAAK8gB,eAAetV,EAAIzL,KAAKghB,UAAWhhB,KAAKihB,YAC3DxV,GAAGwW,WAAWN,GAGd3hB,KAAKkiB,SAAWzW,EAAG0W,mBAAmBR,EAAS,YAC/C3hB,KAAKoiB,iBAAmB3W,EAAG0W,mBAAmBR,EAAS,oBACvD3hB,KAAKqiB,aAAe5W,EAAG0W,mBAAmBR,EAAS,gBACnD3hB,KAAK0iB,eAAiBjX,EAAG+W,kBAAkBb,EAAS,UAIpD3hB,KAAKuiB,gBAAkB9W,EAAG+W,kBAAkBb,EAAS,mBACrD3hB,KAAKyiB,cAAgBhX,EAAG+W,kBAAkBb,EAAS,iBAEnD3hB,KAAK8hB,YAAc9hB,KAAKuiB,gBAAiBviB,KAAKyiB,eAE9CziB,KAAK+lB,kBAAoBta,EAAG0W,mBAAmBR,EAAS,qBACxD3hB,KAAKgI,MAAQyD,EAAG0W,mBAAmBR,EAAS,SAE5C3hB,KAAK2hB,QAAUA,GAQnB1hB,EAAK6lB,YAAYjiB,UAAUqI,QAAU,WAEjClM,KAAKyL,GAAG+Z,cAAexlB,KAAK2hB,SAC5B3hB,KAAK4iB,SAAW,KAChB5iB,KAAKyL,GAAK,KAEVzL,KAAKgmB,UAAY,MAYrB/lB,EAAKgmB,gBAAkB,SAASxa,GAO5BzL,KAAK2B,KAAO1B,EAAK0B,OAMjB3B,KAAKyL,GAAKA,EAOVzL,KAAK2hB,QAAU,KAOf3hB,KAAKihB,aACD,2BACA,uBAEA,oBACA,4BACA,KAQJjhB,KAAKghB,WACD,kCACA,yBACA,kCACA,iCACA,6BACA,uBACA,qBACA,uBAEA,oBACA,+DACA,4BACA,qGACA,kDACA,KAGJhhB,KAAK+hB,QAGT9hB,EAAKgmB,gBAAgBpiB,UAAUsB,YAAclF,EAAKgmB,gBAOlDhmB,EAAKgmB,gBAAgBpiB,UAAUke,KAAO,WAElC,GAAItW,GAAKzL,KAAKyL,GAEVkW,EAAU1hB,EAAK8gB,eAAetV,EAAIzL,KAAKghB,UAAWhhB,KAAKihB,YAC3DxV,GAAGwW,WAAWN,GAGd3hB,KAAKoiB,iBAAmB3W,EAAG0W,mBAAmBR,EAAS,oBACvD3hB,KAAKqiB,aAAe5W,EAAG0W,mBAAmBR,EAAS,gBACnD3hB,KAAKkmB,UAAYza,EAAG0W,mBAAmBR,EAAS,QAGhD3hB,KAAKuiB,gBAAkB9W,EAAG+W,kBAAkBb,EAAS,mBACrD3hB,KAAK0iB,eAAiBjX,EAAG+W,kBAAkBb,EAAS,UAEpD3hB,KAAK8hB,YAAc9hB,KAAKuiB,gBAAiBviB,KAAK0iB,gBAE9C1iB,KAAK+lB,kBAAoBta,EAAG0W,mBAAmBR,EAAS,qBACxD3hB,KAAKgI,MAAQyD,EAAG0W,mBAAmBR,EAAS,SAE5C3hB,KAAK2hB,QAAUA,GAQnB1hB,EAAKgmB,gBAAgBpiB,UAAUqI,QAAU,WAErClM,KAAKyL,GAAG+Z,cAAexlB,KAAK2hB,SAC5B3hB,KAAK4iB,SAAW,KAChB5iB,KAAKyL,GAAK,KAEVzL,KAAK8hB,WAAa,MAYtB7hB,EAAKkmB,uBAAyB,SAAS1a,GAOnCzL,KAAK2B,KAAO1B,EAAK0B,OAMjB3B,KAAKyL,GAAKA,EAOVzL,KAAK2hB,QAAU,KAOf3hB,KAAKihB,aAED,2BAEA,uBAEA,oBACA,4BACA,KAQJjhB,KAAKghB,WACD,kCAEA,kCACA,iCACA,6BAEA,qBACA,uBACA,sBAEA,uBAEA,oBACA,+DACA,4BACA,qGACA,iDACA,KAGJhhB,KAAK+hB,QAGT9hB,EAAKkmB,uBAAuBtiB,UAAUsB,YAAclF,EAAKkmB,uBAOzDlmB,EAAKkmB,uBAAuBtiB,UAAUke,KAAO,WAEzC,GAAItW,GAAKzL,KAAKyL,GAEVkW,EAAU1hB,EAAK8gB,eAAetV,EAAIzL,KAAKghB,UAAWhhB,KAAKihB,YAC3DxV,GAAGwW,WAAWN,GAGd3hB,KAAKoiB,iBAAmB3W,EAAG0W,mBAAmBR,EAAS,oBACvD3hB,KAAKqiB,aAAe5W,EAAG0W,mBAAmBR,EAAS,gBACnD3hB,KAAKkmB,UAAYza,EAAG0W,mBAAmBR,EAAS,QAChD3hB,KAAKomB,MAAQ3a,EAAG0W,mBAAmBR,EAAS,SAG5C3hB,KAAKuiB,gBAAkB9W,EAAG+W,kBAAkBb,EAAS,mBAGrD3hB,KAAK8hB,YAAc9hB,KAAKuiB,gBAAiBviB,KAAK0iB,gBAE9C1iB,KAAK+lB,kBAAoBta,EAAG0W,mBAAmBR,EAAS,qBACxD3hB,KAAKgI,MAAQyD,EAAG0W,mBAAmBR,EAAS,SAE5C3hB,KAAK2hB,QAAUA,GAQnB1hB,EAAKkmB,uBAAuBtiB,UAAUqI,QAAU,WAE5ClM,KAAKyL,GAAG+Z,cAAexlB,KAAK2hB,SAC5B3hB,KAAK4iB,SAAW,KAChB5iB,KAAKyL,GAAK,KAEVzL,KAAKgmB,UAAY,MAcrB/lB,EAAKomB,cAAgB,aAarBpmB,EAAKomB,cAAcC,eAAiB,SAASC,EAAUhb,GAEnD,GAIIib,GAJA/a,EAAKF,EAAcE,GACnBgb,EAAalb,EAAckb,WAC3BC,EAASnb,EAAcmb,OACvBjX,EAASlE,EAAcoH,cAAcgU,eAGtCJ,GAAS/c,OAERvJ,EAAKomB,cAAcO,eAAeL,EAAU9a,EAOhD,KAAK,GAJDob,GAAQN,EAASO,OAAOrb,EAAGvF,IAItB/B,EAAI,EAAGA,EAAI0iB,EAAMjQ,KAAKvS,OAAQF,IAET,IAAvB0iB,EAAMjQ,KAAKzS,GAAG4iB,MAEbP,EAAYK,EAAMjQ,KAAKzS,GAEvBoH,EAAcyb,eAAeC,YAAYV,EAAUC,EAAWjb,GAG9DE,EAAGyb,aAAazb,EAAG0b,aAAc,EAAG1b,EAAG2b,eAAmD,GAAjCZ,EAAUa,QAAQhjB,OAAS,IAEpFkH,EAAcyb,eAAeM,WAAWf,EAAUC,EAAWjb,KAI7Dib,EAAYK,EAAMjQ,KAAKzS,GAGvBoH,EAAcoH,cAAcC,UAAWnD,GACvCA,EAASlE,EAAcoH,cAAcgU,gBACrClb,EAAG6X,iBAAiB7T,EAAOsW,mBAAmB,EAAOQ,EAAS7d,eAAe7C,SAAQ,IAErF4F,EAAG8b,UAAU9X,EAAO2S,iBAAkBqE,EAAWliB,GAAIkiB,EAAWjiB,GAChEiH,EAAG8b,UAAU9X,EAAO4S,cAAeqE,EAAOniB,GAAImiB,EAAOliB,GAErDiH,EAAG+b,WAAW/X,EAAOyW,UAAWjmB,EAAKyZ,QAAQ6M,EAAShX,OAEtD9D,EAAGgc,UAAUhY,EAAOzH,MAAOue,EAAShe,YAGpCkD,EAAGic,WAAWjc,EAAGkc,aAAcnB,EAAUoB,QAEzCnc,EAAGoc,oBAAoBpY,EAAO8S,gBAAiB,EAAG9W,EAAGqc,OAAO,EAAO,GAAO,GAC1Erc,EAAGoc,oBAAoBpY,EAAOiT,eAAgB,EAAGjX,EAAGqc,OAAO,EAAM,GAAO,GAGxErc,EAAGic,WAAWjc,EAAGsc,qBAAsBvB,EAAUwB,aACjDvc,EAAGyb,aAAazb,EAAGwc,eAAiBzB,EAAUa,QAAQhjB,OAAQoH,EAAG2b,eAAgB,KAc7FnnB,EAAKomB,cAAcO,eAAiB,SAASL,EAAU9a,GAGnD,GAAIob,GAAQN,EAASO,OAAOrb,EAAGvF,GAE3B2gB,KAAMA,EAAQN,EAASO,OAAOrb,EAAGvF,KAAOgiB,UAAU,EAAGtR,QAASnL,GAAGA,IAGrE8a,EAAS/c,OAAQ,CAEjB,IAAIrF,EAGJ,IAAGoiB,EAAS4B,WACZ,CAII,IAHA5B,EAAS4B,YAAa,EAGjBhkB,EAAI,EAAGA,EAAI0iB,EAAMjQ,KAAKvS,OAAQF,IACnC,CACI,GAAIikB,GAAevB,EAAMjQ,KAAKzS,EAC9BikB,GAAaC,QACbpoB,EAAKomB,cAAciC,iBAAiBhkB,KAAM8jB,GAI9CvB,EAAMjQ,QACNiQ,EAAMqB,UAAY,EAGtB,GAAI1B,EAKJ,KAAKriB,EAAI0iB,EAAMqB,UAAW/jB,EAAIoiB,EAAS6B,aAAa/jB,OAAQF,IAC5D,CACI,GAAIyS,GAAO2P,EAAS6B,aAAajkB,EAEjC,IAAGyS,EAAK3T,OAAShD,EAAKsoB,SAASC,KAC/B,CAaI,GAXA5R,EAAKhT,OAASgT,EAAK6R,MAAM7kB,OAAOE,QAC7B8S,EAAK6R,MAAMhkB,QAGPmS,EAAKhT,OAAO,KAAOgT,EAAKhT,OAAOgT,EAAKhT,OAAOS,OAAO,IAAMuS,EAAKhT,OAAO,KAAOgT,EAAKhT,OAAOgT,EAAKhT,OAAOS,OAAO,IAEzGuS,EAAKhT,OAAOU,KAAKsS,EAAKhT,OAAO,GAAIgT,EAAKhT,OAAO,IAKlDgT,EAAK9C,MAED8C,EAAKhT,OAAOS,QAAU,EAErB,GAAGuS,EAAKhT,OAAOS,OAAS,GACxB,CACImiB,EAAYvmB,EAAKomB,cAAcqC,WAAW7B,EAAO,EAEjD,IAAI8B,GAAqB1oB,EAAKomB,cAAcuC,UAAUhS,EAAM4P,EAGxDmC,KAGAnC,EAAYvmB,EAAKomB,cAAcqC,WAAW7B,EAAO,GACjD5mB,EAAKomB,cAAcwC,iBAAiBjS,EAAM4P,QAM9CA,GAAYvmB,EAAKomB,cAAcqC,WAAW7B,EAAO,GACjD5mB,EAAKomB,cAAcwC,iBAAiBjS,EAAM4P,EAKnD5P,GAAK5B,UAAY,IAEhBwR,EAAYvmB,EAAKomB,cAAcqC,WAAW7B,EAAO,GACjD5mB,EAAKomB,cAAcyC,UAAUlS,EAAM4P,QAMvCA,GAAYvmB,EAAKomB,cAAcqC,WAAW7B,EAAO,GAE9CjQ,EAAK3T,OAAShD,EAAKsoB,SAASQ,KAE3B9oB,EAAKomB,cAAc2C,eAAepS,EAAM4P,GAEpC5P,EAAK3T,OAAShD,EAAKsoB,SAASU,MAAQrS,EAAK3T,OAAShD,EAAKsoB,SAASW,KAEpEjpB,EAAKomB,cAAc8C,YAAYvS,EAAM4P,GAEjC5P,EAAK3T,OAAShD,EAAKsoB,SAASa,MAEhCnpB,EAAKomB,cAAcgD,sBAAsBzS,EAAM4P,EAIvDK,GAAMqB,YAIV,IAAK/jB,EAAI,EAAGA,EAAI0iB,EAAMjQ,KAAKvS,OAAQF,IAE/BqiB,EAAYK,EAAMjQ,KAAKzS,GACpBqiB,EAAUhd,OAAMgd,EAAU8C,UAWrCrpB,EAAKomB,cAAcqC,WAAa,SAAS7B,EAAO5jB,GAE5C,GAAIujB,EAsBJ,OApBIK,GAAMjQ,KAAKvS,QAQXmiB,EAAYK,EAAMjQ,KAAKiQ,EAAMjQ,KAAKvS,OAAO,IAEtCmiB,EAAUO,OAAS9jB,GAAiB,IAATA,KAE1BujB,EAAYvmB,EAAKomB,cAAciC,iBAAiBxP,OAAS,GAAI7Y,GAAKspB,kBAAkB1C,EAAMpb,IAC1F+a,EAAUO,KAAO9jB,EACjB4jB,EAAMjQ,KAAKtS,KAAKkiB,MAZpBA,EAAYvmB,EAAKomB,cAAciC,iBAAiBxP,OAAS,GAAI7Y,GAAKspB,kBAAkB1C,EAAMpb,IAC1F+a,EAAUO,KAAO9jB,EACjB4jB,EAAMjQ,KAAKtS,KAAKkiB,IAcpBA,EAAUhd,OAAQ,EAEXgd,GAYXvmB,EAAKomB,cAAc2C,eAAiB,SAASZ,EAAc5B,GAKvD,GAAIgD,GAAWpB,EAAaK,MACxBlkB,EAAIilB,EAASjlB,EACbC,EAAIglB,EAAShlB,EACb2C,EAAQqiB,EAASriB,MACjBC,EAASoiB,EAASpiB,MAEtB,IAAGghB,EAAatU,KAChB,CACI,GAAIsS,GAAQnmB,EAAKyZ,QAAQ0O,EAAaqB,WAClCzhB,EAAQogB,EAAasB,UAErBC,EAAIvD,EAAM,GAAKpe,EACf4hB,EAAIxD,EAAM,GAAKpe,EACf1C,EAAI8gB,EAAM,GAAKpe,EAEf6hB,EAAQrD,EAAU5iB,OAClByjB,EAAUb,EAAUa,QAEpByC,EAAUD,EAAMxlB,OAAO,CAG3BwlB,GAAMvlB,KAAKC,EAAGC,GACdqlB,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAEpB6hB,EAAMvlB,KAAKC,EAAI4C,EAAO3C,GACtBqlB,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAEpB6hB,EAAMvlB,KAAKC,EAAIC,EAAI4C,GACnByiB,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAEpB6hB,EAAMvlB,KAAKC,EAAI4C,EAAO3C,EAAI4C,GAC1ByiB,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAGpBqf,EAAQ/iB,KAAKwlB,EAASA,EAASA,EAAQ,EAAGA,EAAQ,EAAGA,EAAQ,EAAGA,EAAQ,GAG5E,GAAG1B,EAAapT,UAChB,CACI,GAAI+U,GAAa3B,EAAaxkB,MAE9BwkB,GAAaxkB,QAAUW,EAAGC,EAChBD,EAAI4C,EAAO3C,EACXD,EAAI4C,EAAO3C,EAAI4C,EACf7C,EAAGC,EAAI4C,EACP7C,EAAGC,GAGbvE,EAAKomB,cAAcyC,UAAUV,EAAc5B,GAE3C4B,EAAaxkB,OAASmmB,IAa9B9pB,EAAKomB,cAAcgD,sBAAwB,SAASjB,EAAc5B,GAE9D,GAAIwD,GAAY5B,EAAaK,MACzBlkB,EAAIylB,EAAUzlB,EACdC,EAAIwlB,EAAUxlB,EACd2C,EAAQ6iB,EAAU7iB,MAClBC,EAAS4iB,EAAU5iB,OAEnBK,EAASuiB,EAAUviB,OAEnBwiB,IAOJ,IANAA,EAAU3lB,KAAKC,EAAGC,EAAIiD,GACtBwiB,EAAYA,EAAU9O,OAAOlb,EAAKomB,cAAc6D,qBAAqB3lB,EAAGC,EAAI4C,EAASK,EAAQlD,EAAGC,EAAI4C,EAAQ7C,EAAIkD,EAAQjD,EAAI4C,IAC5H6iB,EAAYA,EAAU9O,OAAOlb,EAAKomB,cAAc6D,qBAAqB3lB,EAAI4C,EAAQM,EAAQjD,EAAI4C,EAAQ7C,EAAI4C,EAAO3C,EAAI4C,EAAQ7C,EAAI4C,EAAO3C,EAAI4C,EAASK,IACpJwiB,EAAYA,EAAU9O,OAAOlb,EAAKomB,cAAc6D,qBAAqB3lB,EAAI4C,EAAO3C,EAAIiD,EAAQlD,EAAI4C,EAAO3C,EAAGD,EAAI4C,EAAQM,EAAQjD,IAC9HylB,EAAYA,EAAU9O,OAAOlb,EAAKomB,cAAc6D,qBAAqB3lB,EAAIkD,EAAQjD,EAAGD,EAAGC,EAAGD,EAAGC,EAAIiD,IAE7F2gB,EAAatU,KAAM,CACnB,GAAIsS,GAAQnmB,EAAKyZ,QAAQ0O,EAAaqB,WAClCzhB,EAAQogB,EAAasB,UAErBC,EAAIvD,EAAM,GAAKpe,EACf4hB,EAAIxD,EAAM,GAAKpe,EACf1C,EAAI8gB,EAAM,GAAKpe,EAEf6hB,EAAQrD,EAAU5iB,OAClByjB,EAAUb,EAAUa,QAEpB8C,EAASN,EAAMxlB,OAAO,EAEtB+lB,EAAYnqB,EAAK0d,MAAMC,YAAYqM,GAEnC9lB,EAAI,CACR,KAAKA,EAAI,EAAGA,EAAIimB,EAAU/lB,OAAQF,GAAG,EAEjCkjB,EAAQ/iB,KAAK8lB,EAAUjmB,GAAKgmB,GAC5B9C,EAAQ/iB,KAAK8lB,EAAUjmB,GAAKgmB,GAC5B9C,EAAQ/iB,KAAK8lB,EAAUjmB,EAAE,GAAKgmB,GAC9B9C,EAAQ/iB,KAAK8lB,EAAUjmB,EAAE,GAAKgmB,GAC9B9C,EAAQ/iB,KAAK8lB,EAAUjmB,EAAE,GAAKgmB,EAGlC,KAAKhmB,EAAI,EAAGA,EAAI8lB,EAAU5lB,OAAQF,IAE9B0lB,EAAMvlB,KAAK2lB,EAAU9lB,GAAI8lB,IAAY9lB,GAAIwlB,EAAGC,EAAGtkB,EAAG0C,GAI1D,GAAIogB,EAAapT,UAAW,CACxB,GAAI+U,GAAa3B,EAAaxkB,MAE9BwkB,GAAaxkB,OAASqmB,EAEtBhqB,EAAKomB,cAAcyC,UAAUV,EAAc5B,GAE3C4B,EAAaxkB,OAASmmB,IAmB9B9pB,EAAKomB,cAAc6D,qBAAuB,SAASG,EAAOC,EAAOC,EAAKC,EAAKC,EAAKC,GAW5E,QAASC,GAAMC,EAAKC,EAAIC,GACpB,GAAIC,GAAOF,EAAKD,CAEhB,OAAOA,GAAOG,EAAOD,EAIzB,IAAK,GAhBDE,GACAC,EACAC,EACAC,EACA5mB,EACAC,EACAsZ,EAAI,GACJla,KAQAiB,EAAI,EACCV,EAAI,EAAQ2Z,GAAL3Z,EAAQA,IAEpBU,EAAIV,EAAI2Z,EAGRkN,EAAKL,EAAON,EAAQE,EAAM1lB,GAC1BomB,EAAKN,EAAOL,EAAQE,EAAM3lB,GAC1BqmB,EAAKP,EAAOJ,EAAME,EAAM5lB,GACxBsmB,EAAKR,EAAOH,EAAME,EAAM7lB,GAGxBN,EAAIomB,EAAOK,EAAKE,EAAKrmB,GACrBL,EAAImmB,EAAOM,EAAKE,EAAKtmB,GAErBjB,EAAOU,KAAKC,EAAGC,EAEnB,OAAOZ,IAYX3D,EAAKomB,cAAc8C,YAAc,SAASf,EAAc5B,GAGpD,GAGIrf,GACAC,EAJAgkB,EAAahD,EAAaK,MAC1BlkB,EAAI6mB,EAAW7mB,EACfC,EAAI4mB,EAAW5mB,CAKhB4jB,GAAanlB,OAAShD,EAAKsoB,SAASU,MAEnC9hB,EAAQikB,EAAW3jB,OACnBL,EAASgkB,EAAW3jB,SAIpBN,EAAQikB,EAAWjkB,MACnBC,EAASgkB,EAAWhkB,OAGxB,IAAIikB,GAAY,GACZC,EAAiB,EAAVppB,KAAKC,GAAUkpB,EAEtBlnB,EAAI,CAER,IAAGikB,EAAatU,KAChB,CACI,GAAIsS,GAAQnmB,EAAKyZ,QAAQ0O,EAAaqB,WAClCzhB,EAAQogB,EAAasB,UAErBC,EAAIvD,EAAM,GAAKpe,EACf4hB,EAAIxD,EAAM,GAAKpe,EACf1C,EAAI8gB,EAAM,GAAKpe,EAEf6hB,EAAQrD,EAAU5iB,OAClByjB,EAAUb,EAAUa,QAEpB8C,EAASN,EAAMxlB,OAAO,CAI1B,KAFAgjB,EAAQ/iB,KAAK6lB,GAERhmB,EAAI,EAAOknB,EAAY,EAAhBlnB,EAAoBA,IAE5B0lB,EAAMvlB,KAAKC,EAAEC,EAAGmlB,EAAGC,EAAGtkB,EAAG0C,GAEzB6hB,EAAMvlB,KAAKC,EAAIrC,KAAKsE,IAAI8kB,EAAMnnB,GAAKgD,EACxB3C,EAAItC,KAAKqE,IAAI+kB,EAAMnnB,GAAKiD,EACxBuiB,EAAGC,EAAGtkB,EAAG0C,GAEpBqf,EAAQ/iB,KAAK6lB,IAAUA,IAG3B9C,GAAQ/iB,KAAK6lB,EAAO,GAGxB,GAAG/B,EAAapT,UAChB,CACI,GAAI+U,GAAa3B,EAAaxkB,MAI9B,KAFAwkB,EAAaxkB,UAERO,EAAI,EAAOknB,EAAY,EAAhBlnB,EAAmBA,IAE3BikB,EAAaxkB,OAAOU,KAAKC,EAAIrC,KAAKsE,IAAI8kB,EAAMnnB,GAAKgD,EACxB3C,EAAItC,KAAKqE,IAAI+kB,EAAMnnB,GAAKiD,EAGrDnH,GAAKomB,cAAcyC,UAAUV,EAAc5B,GAE3C4B,EAAaxkB,OAASmmB,IAa9B9pB,EAAKomB,cAAcyC,UAAY,SAASV,EAAc5B,GAGlD,GAAIriB,GAAI,EACJP,EAASwkB,EAAaxkB,MAC1B,IAAqB,IAAlBA,EAAOS,OAAV,CAGA,GAAG+jB,EAAapT,UAAU,EAEtB,IAAK7Q,EAAI,EAAGA,EAAIP,EAAOS,OAAQF,IAC3BP,EAAOO,IAAM,EAKrB,IAAIonB,GAAa,GAAItrB,GAAKgE,MAAOL,EAAO,GAAIA,EAAO,IAC/C4nB,EAAY,GAAIvrB,GAAKgE,MAAOL,EAAOA,EAAOS,OAAS,GAAIT,EAAOA,EAAOS,OAAS,GAGlF,IAAGknB,EAAWhnB,IAAMinB,EAAUjnB,GAAKgnB,EAAW/mB,IAAMgnB,EAAUhnB,EAC9D,CAEIZ,EAASA,EAAOE,QAEhBF,EAAOkV,MACPlV,EAAOkV,MAEP0S,EAAY,GAAIvrB,GAAKgE,MAAOL,EAAOA,EAAOS,OAAS,GAAIT,EAAOA,EAAOS,OAAS,GAE9E,IAAIonB,GAAYD,EAAUjnB,EAAkC,IAA7BgnB,EAAWhnB,EAAIinB,EAAUjnB,GACpDmnB,EAAYF,EAAUhnB,EAAkC,IAA7B+mB,EAAW/mB,EAAIgnB,EAAUhnB,EAExDZ,GAAO+nB,QAAQF,EAAWC,GAC1B9nB,EAAOU,KAAKmnB,EAAWC,GAG3B,GAgBI3M,GAAIC,EAAI4M,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACjCC,EAAOC,EAAOC,EAAQC,EAAQC,EAAQC,EACtC9lB,EAAIK,EAAIJ,EAAI8lB,EAAIC,EAAIC,EACpBC,EAAOC,EAAOC,EAnBdhD,EAAQrD,EAAU5iB,OAClByjB,EAAUb,EAAUa,QACpBhjB,EAAST,EAAOS,OAAS,EACzByoB,EAAalpB,EAAOS,OACpB0oB,EAAalD,EAAMxlB,OAAO,EAG1B8C,EAAQihB,EAAapT,UAAY,EAGjCoR,EAAQnmB,EAAKyZ,QAAQ0O,EAAa4E,WAClChlB,EAAQogB,EAAa6E,UACrBtD,EAAIvD,EAAM,GAAKpe,EACf4hB,EAAIxD,EAAM,GAAKpe,EACf1C,EAAI8gB,EAAM,GAAKpe,CA8BnB,KAvBA4jB,EAAMhoB,EAAO,GACbioB,EAAMjoB,EAAO,GAEbkoB,EAAMloB,EAAO,GACbmoB,EAAMnoB,EAAO,GAEbsoB,IAAUL,EAAME,GAChBI,EAASP,EAAME,EAEfe,EAAO3qB,KAAKgrB,KAAKhB,EAAMA,EAAQC,EAAMA,GAErCD,GAASW,EACTV,GAASU,EACTX,GAAS/kB,EACTglB,GAAShlB,EAGT0iB,EAAMvlB,KAAKsnB,EAAMM,EAAQL,EAAMM,EACnBxC,EAAGC,EAAGtkB,EAAG0C,GAErB6hB,EAAMvlB,KAAKsnB,EAAMM,EAAQL,EAAMM,EACnBxC,EAAGC,EAAGtkB,EAAG0C,GAEhB7D,EAAI,EAAOE,EAAO,EAAXF,EAAcA,IAEtBynB,EAAMhoB,EAAa,GAALO,EAAE,IAChB0nB,EAAMjoB,EAAa,GAALO,EAAE,GAAO,GAEvB2nB,EAAMloB,EAAW,EAAJ,GACbmoB,EAAMnoB,EAAW,EAAJ,EAAQ,GAErBooB,EAAMpoB,EAAa,GAALO,EAAE,IAChB8nB,EAAMroB,EAAa,GAALO,EAAE,GAAO,GAEvB+nB,IAAUL,EAAME,GAChBI,EAAQP,EAAME,EAEde,EAAO3qB,KAAKgrB,KAAKhB,EAAMA,EAAQC,EAAMA,GACrCD,GAASW,EACTV,GAASU,EACTX,GAAS/kB,EACTglB,GAAShlB,EAETilB,IAAWL,EAAME,GACjBI,EAASP,EAAME,EAEfa,EAAO3qB,KAAKgrB,KAAKd,EAAOA,EAASC,EAAOA,GACxCD,GAAUS,EACVR,GAAUQ,EACVT,GAAUjlB,EACVklB,GAAUllB,EAEVV,GAAO0lB,EAAQN,IAASM,EAAQJ,GAChCjlB,GAAOolB,EAAQJ,IAASI,EAAQN,GAChCllB,IAAOwlB,EAAQN,KAASO,EAAQJ,KAASG,EAAQJ,KAASK,EAAQN,GAClEW,GAAOH,EAASJ,IAASI,EAASN,GAClCU,GAAOL,EAASN,IAASM,EAASJ,GAClCU,IAAON,EAASJ,KAASK,EAASN,KAASK,EAASN,KAASO,EAASJ,GAEtEU,EAAQlmB,EAAGgmB,EAAKD,EAAG1lB,EAEhB5E,KAAKirB,IAAIR,GAAS,IAGjBA,GAAO,KACP9C,EAAMvlB,KAAKwnB,EAAMI,EAAQH,EAAMI,EAC3BxC,EAAGC,EAAGtkB,EAAG0C,GAEb6hB,EAAMvlB,KAAKwnB,EAAMI,EAAQH,EAAMI,EAC3BxC,EAAGC,EAAGtkB,EAAG0C,KAKjB+W,GAAMjY,EAAG4lB,EAAKD,EAAG/lB,GAAIimB,EACrB3N,GAAMwN,EAAG9lB,EAAKD,EAAGimB,GAAIC,EAGrBC,GAAS7N,EAAI+M,IAAQ/M,EAAI+M,IAAQ9M,EAAI+M,IAAQ/M,EAAI+M,GAG9Ca,EAAQ,OAEPN,EAASJ,EAAQE,EACjBG,EAASJ,EAAQE,EAEjBQ,EAAO3qB,KAAKgrB,KAAKZ,EAAOA,EAASC,EAAOA,GACxCD,GAAUO,EACVN,GAAUM,EACVP,GAAUnlB,EACVolB,GAAUplB,EAEV0iB,EAAMvlB,KAAKwnB,EAAMQ,EAAQP,EAAKQ,GAC9B1C,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAEpB6hB,EAAMvlB,KAAKwnB,EAAMQ,EAAQP,EAAKQ,GAC9B1C,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAEpB6hB,EAAMvlB,KAAKwnB,EAAMQ,EAAQP,EAAKQ,GAC9B1C,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAEpB8kB,MAKAjD,EAAMvlB,KAAKya,EAAKC,GAChB6K,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAEpB6hB,EAAMvlB,KAAKwnB,GAAO/M,EAAG+M,GAAMC,GAAO/M,EAAK+M,IACvClC,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,IA2B5B,KAvBA4jB,EAAMhoB,EAAkB,GAAVS,EAAO,IACrBwnB,EAAMjoB,EAAkB,GAAVS,EAAO,GAAO,GAE5BynB,EAAMloB,EAAkB,GAAVS,EAAO,IACrB0nB,EAAMnoB,EAAkB,GAAVS,EAAO,GAAO,GAE5B6nB,IAAUL,EAAME,GAChBI,EAAQP,EAAME,EAEde,EAAO3qB,KAAKgrB,KAAKhB,EAAMA,EAAQC,EAAMA,GACrCD,GAASW,EACTV,GAASU,EACTX,GAAS/kB,EACTglB,GAAShlB,EAET0iB,EAAMvlB,KAAKwnB,EAAMI,EAAQH,EAAMI,GAC/BtC,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAEpB6hB,EAAMvlB,KAAKwnB,EAAMI,EAAQH,EAAMI,GAC/BtC,EAAMvlB,KAAKqlB,EAAGC,EAAGtkB,EAAG0C,GAEpBqf,EAAQ/iB,KAAKyoB,GAER5oB,EAAI,EAAO2oB,EAAJ3oB,EAAgBA,IAExBkjB,EAAQ/iB,KAAKyoB,IAGjB1F,GAAQ/iB,KAAKyoB,EAAW,KAY5B9sB,EAAKomB,cAAcwC,iBAAmB,SAAST,EAAc5B,GAGzD,GAAI5iB,GAASwkB,EAAaxkB,OAAOE,OACjC,MAAGF,EAAOS,OAAS,GAAnB,CAGA,GAAIgjB,GAAUb,EAAUa,OACxBb,GAAU5iB,OAASA,EACnB4iB,EAAUxe,MAAQogB,EAAasB,UAC/BlD,EAAUJ,MAAQnmB,EAAKyZ,QAAQ0O,EAAaqB,UAc5C,KAAK,GAHDllB,GAAEC,EANF6J,EAAOC,IACPE,GAAQF,IAERC,EAAOD,IACPG,GAAQH,IAKHnK,EAAI,EAAGA,EAAIP,EAAOS,OAAQF,GAAG,EAElCI,EAAIX,EAAOO,GACXK,EAAIZ,EAAOO,EAAE,GAEbkK,EAAWA,EAAJ9J,EAAWA,EAAI8J,EACtBG,EAAOjK,EAAIiK,EAAOjK,EAAIiK,EAEtBD,EAAWA,EAAJ/J,EAAWA,EAAI+J,EACtBE,EAAOjK,EAAIiK,EAAOjK,EAAIiK,CAI1B7K,GAAOU,KAAK+J,EAAME,EACNC,EAAMD,EACNC,EAAMC,EACNJ,EAAMI,EAKlB,IAAIpK,GAAST,EAAOS,OAAS,CAC7B,KAAKF,EAAI,EAAOE,EAAJF,EAAYA,IAEpBkjB,EAAQ/iB,KAAMH,KActBlE,EAAKomB,cAAcuC,UAAY,SAASR,EAAc5B,GAElD,GAAI5iB,GAASwkB,EAAaxkB,MAE1B,MAAGA,EAAOS,OAAS,GAAnB,CAEA,GAAIwlB,GAAQrD,EAAU5iB,OAClByjB,EAAUb,EAAUa,QAEpBhjB,EAAST,EAAOS,OAAS,EAGzB+hB,EAAQnmB,EAAKyZ,QAAQ0O,EAAaqB,WAClCzhB,EAAQogB,EAAasB,UACrBC,EAAIvD,EAAM,GAAKpe,EACf4hB,EAAIxD,EAAM,GAAKpe,EACf1C,EAAI8gB,EAAM,GAAKpe,EAEfoiB,EAAYnqB,EAAK0d,MAAMC,YAAYha,EAEvC,KAAIwmB,EAAU,OAAO,CAErB,IAAIN,GAAUD,EAAMxlB,OAAS,EAEzBF,EAAI,CAER,KAAKA,EAAI,EAAGA,EAAIimB,EAAU/lB,OAAQF,GAAG,EAEjCkjB,EAAQ/iB,KAAK8lB,EAAUjmB,GAAK2lB,GAC5BzC,EAAQ/iB,KAAK8lB,EAAUjmB,GAAK2lB,GAC5BzC,EAAQ/iB,KAAK8lB,EAAUjmB,EAAE,GAAK2lB,GAC9BzC,EAAQ/iB,KAAK8lB,EAAUjmB,EAAE,GAAI2lB,GAC7BzC,EAAQ/iB,KAAK8lB,EAAUjmB,EAAE,GAAK2lB,EAGlC,KAAK3lB,EAAI,EAAOE,EAAJF,EAAYA,IAEpB0lB,EAAMvlB,KAAKV,EAAW,EAAJO,GAAQP,EAAW,EAAJO,EAAQ,GAC9BwlB,EAAGC,EAAGtkB,EAAG0C,EAGxB,QAAO,IAGX/H,EAAKomB,cAAciC,oBAOnBroB,EAAKspB,kBAAoB,SAAS9d,GAE9BzL,KAAKyL,GAAKA,EAGVzL,KAAKomB,OAAS,EAAE,EAAE,GAClBpmB,KAAK4D,UACL5D,KAAKqnB,WACLrnB,KAAKkoB,UAAY,EACjBloB,KAAK4nB,OAASnc,EAAG2hB,eACjBptB,KAAKgoB,YAAcvc,EAAG2hB,eACtBptB,KAAK+mB,KAAO,EACZ/mB,KAAKgI,MAAQ,EACbhI,KAAKwJ,OAAQ,GAMjBvJ,EAAKspB,kBAAkB1lB,UAAUwkB,MAAQ,WAErCroB,KAAK4D,UACL5D,KAAKqnB,WACLrnB,KAAKkoB,UAAY,GAMrBjoB,EAAKspB,kBAAkB1lB,UAAUylB,OAAS,WAEtC,GAAI7d,GAAKzL,KAAKyL,EAGdzL,MAAKqtB,SAAW,GAAIptB,GAAK2B,aAAa5B,KAAK4D,QAE3C6H,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK4nB,QACpCnc,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAKqtB,SAAU5hB,EAAG8hB,aAEjDvtB,KAAKwtB,WAAa,GAAIvtB,GAAK4B,YAAY7B,KAAKqnB,SAE5C5b,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAKgoB,aAC5Cvc,EAAG6hB,WAAW7hB,EAAGsc,qBAAsB/nB,KAAKwtB,WAAY/hB,EAAG8hB,aAE3DvtB,KAAKwJ,OAAQ,GAOjBvJ,EAAKwtB,cACLxtB,EAAKslB,aAoBLtlB,EAAKytB,cAAgB,SAASvmB,EAAOC,EAAQumB,GAEzC,GAAGA,EAEC,IAAK,GAAIxpB,KAAKlE,GAAKuC,qBAEW,mBAAfmrB,GAAQxpB,KAAoBwpB,EAAQxpB,GAAKlE,EAAKuC,qBAAqB2B,QAKlFwpB,GAAU1tB,EAAKuC,oBAGfvC,GAAK2tB,kBAEL3tB,EAAK+C,SAAS,SACd/C,EAAK2tB,gBAAkB5tB,MAO3BA,KAAKiD,KAAOhD,EAAKC,eASjBF,KAAK6C,WAAa8qB,EAAQ9qB,WAU1B7C,KAAK0C,YAAcirB,EAAQjrB,YAQ3B1C,KAAK+C,WAAa4qB,EAAQ5qB,aAAc,EAQxC/C,KAAK4C,sBAAwB+qB,EAAQ/qB,sBAYrC5C,KAAK8C,kBAAoB6qB,EAAQ7qB,kBASjC9C,KAAKmH,MAAQA,GAAS,IAStBnH,KAAKoH,OAASA,GAAU,IAQxBpH,KAAKyC,KAAOkrB,EAAQlrB,MAAQ6Q,SAASC,cAAe,UAQpDvT,KAAK6tB,iBAAmB7tB,KAAK8tB,kBAAkBhe,KAAK9P,MAMpDA,KAAK+tB,qBAAuB/tB,KAAKguB,sBAAsBle,KAAK9P,MAE5DA,KAAKyC,KAAKma,iBAAiB,mBAAoB5c,KAAK6tB,kBAAkB,GACtE7tB,KAAKyC,KAAKma,iBAAiB,uBAAwB5c,KAAK+tB,sBAAsB,GAO9E/tB,KAAKiuB,iBACDjmB,MAAOhI,KAAK0C,YACZC,UAAWgrB,EAAQhrB,UACnBurB,mBAAmBluB,KAAK0C,aAAoC,kBAArB1C,KAAK0C,YAC5CyrB,SAAQ,EACRvrB,sBAAuB+qB,EAAQ/qB,uBAOnC5C,KAAKymB,WAAa,GAAIxmB,GAAKgE,MAM3BjE,KAAK0mB,OAAS,GAAIzmB,GAAKgE,MAAM,EAAG,GAShCjE,KAAK2S,cAAgB,GAAI1S,GAAKmuB,mBAO9BpuB,KAAK4O,YAAc,GAAI3O,GAAKouB,iBAO5BruB,KAAKiP,YAAc,GAAIhP,GAAKquB,iBAO5BtuB,KAAK8O,cAAgB,GAAI7O,GAAKsuB,mBAO9BvuB,KAAKgnB,eAAiB,GAAI/mB,GAAKuuB,oBAO/BxuB,KAAKyuB,iBAAmB,GAAIxuB,GAAKyuB,sBAOjC1uB,KAAKuL,iBACLvL,KAAKuL,cAAcE,GAAKzL,KAAKyL,GAC7BzL,KAAKuL,cAAcojB,UAAY,EAC/B3uB,KAAKuL,cAAcoH,cAAgB3S,KAAK2S,cACxC3S,KAAKuL,cAAc0D,YAAcjP,KAAKiP,YACtCjP,KAAKuL,cAAcuD,cAAgB9O,KAAK8O,cACxC9O,KAAKuL,cAAckjB,iBAAmBzuB,KAAKyuB,iBAC3CzuB,KAAKuL,cAAcqD,YAAc5O,KAAK4O,YACtC5O,KAAKuL,cAAcyb,eAAiBhnB,KAAKgnB,eACzChnB,KAAKuL,cAAcX,SAAW5K,KAC9BA,KAAKuL,cAAc1I,WAAa7C,KAAK6C,WAGrC7C,KAAK4uB,cAGL5uB,KAAK6uB,iBAIT5uB,EAAKytB,cAAc7pB,UAAUsB,YAAclF,EAAKytB,cAKhDztB,EAAKytB,cAAc7pB,UAAU+qB,YAAc,WAEvC,GAAInjB,GAAKzL,KAAKyC,KAAK+Q,WAAW,QAASxT,KAAKiuB,kBAAoBjuB,KAAKyC,KAAK+Q,WAAW,qBAAsBxT,KAAKiuB,gBAGhH,IAFAjuB,KAAKyL,GAAKA,GAELA,EAED,KAAM,IAAIqB,OAAM,qEAGpB9M,MAAK8uB,YAAcrjB,EAAGvF,GAAKjG,EAAKytB,cAAcoB,cAE9C7uB,EAAKwtB,WAAWztB,KAAK8uB,aAAerjB,EAEpCxL,EAAKslB,UAAUvlB,KAAK8uB,aAAe9uB,KAGnCyL,EAAGsjB,QAAQtjB,EAAGujB,YACdvjB,EAAGsjB,QAAQtjB,EAAGwjB,WACdxjB,EAAGyjB,OAAOzjB,EAAG0jB,OAGbnvB,KAAK2S,cAAcyc,WAAW3jB,GAC9BzL,KAAK4O,YAAYwgB,WAAW3jB,GAC5BzL,KAAKiP,YAAYmgB,WAAW3jB,GAC5BzL,KAAK8O,cAAcsgB,WAAW3jB,GAC9BzL,KAAKyuB,iBAAiBW,WAAW3jB,GACjCzL,KAAKgnB,eAAeoI,WAAW3jB,GAE/BzL,KAAKuL,cAAcE,GAAKzL,KAAKyL,GAG7BzL,KAAK8L,OAAO9L,KAAKmH,MAAOnH,KAAKoH,SASjCnH,EAAKytB,cAAc7pB,UAAUoH,OAAS,SAAS3C,GAG3C,IAAGtI,KAAKqvB,YAAR,CAGGrvB,KAAKsvB,UAAYhnB,IAEbA,EAAM2Q,aAAY3Q,EAAM4Q,mBAAmBqW,eAI9CvvB,KAAKsvB,QAAUhnB,GAInBA,EAAM4B,iBAEN,IAAIuB,GAAKzL,KAAKyL,EAGXnD,GAAME,aAGDF,EAAMknB,0BAENlnB,EAAMknB,yBAA0B,EAChClnB,EAAM4Q,mBAAmBuW,UAAUzvB,OAKpCsI,EAAMknB,0BAELlnB,EAAMknB,yBAA0B,EAChClnB,EAAM4Q,mBAAmBuW,UAAUzvB,OAK3CyL,EAAGikB,SAAS,EAAG,EAAG1vB,KAAKmH,MAAOnH,KAAKoH,QAGnCqE,EAAGkkB,gBAAgBlkB,EAAGmkB,YAAa,MAE/B5vB,KAAK8C,oBAEF9C,KAAK0C,YAEJ+I,EAAGokB,WAAW,EAAG,EAAG,EAAG,GAIvBpkB,EAAGokB,WAAWvnB,EAAMmR,qBAAqB,GAAGnR,EAAMmR,qBAAqB,GAAGnR,EAAMmR,qBAAqB,GAAI,GAG7GhO,EAAGqkB,MAAOrkB,EAAGskB,mBAGjB/vB,KAAKgwB,oBAAqB1nB,EAAOtI,KAAKymB,cAW1CxmB,EAAKytB,cAAc7pB,UAAUmsB,oBAAsB,SAASC,EAAexJ,EAAYmB,GAEnF5nB,KAAKuL,cAAckjB,iBAAiByB,aAAajwB,EAAKI,WAAWC,QAGjEN,KAAKuL,cAAcojB,UAAY,EAG/B3uB,KAAKuL,cAAckb,WAAaA,EAGhCzmB,KAAKuL,cAAcmb,OAAS1mB,KAAK0mB,OAGjC1mB,KAAK4O,YAAYf,MAAM7N,KAAKuL,eAG5BvL,KAAK8O,cAAcjB,MAAM7N,KAAKuL,cAAeqc,GAG7CqI,EAActkB,aAAa3L,KAAKuL,eAGhCvL,KAAK4O,YAAYd,OAUrB7N,EAAKytB,cAAc7pB,UAAUiI,OAAS,SAAS3E,EAAOC,GAElDpH,KAAKmH,MAAQA,EAAQnH,KAAK6C,WAC1B7C,KAAKoH,OAASA,EAASpH,KAAK6C,WAE5B7C,KAAKyC,KAAK0E,MAAQnH,KAAKmH,MACvBnH,KAAKyC,KAAK2E,OAASpH,KAAKoH,OAEpBpH,KAAK+C,aACL/C,KAAKyC,KAAK2Q,MAAMjM,MAAQnH,KAAKmH,MAAQnH,KAAK6C,WAAa,KACvD7C,KAAKyC,KAAK2Q,MAAMhM,OAASpH,KAAKoH,OAASpH,KAAK6C,WAAa,MAG7D7C,KAAKyL,GAAGikB,SAAS,EAAG,EAAG1vB,KAAKmH,MAAOnH,KAAKoH,QAExCpH,KAAKymB,WAAWliB,EAAKvE,KAAKmH,MAAQ,EAAInH,KAAK6C,WAC3C7C,KAAKymB,WAAWjiB,GAAMxE,KAAKoH,OAAS,EAAIpH,KAAK6C,YASjD5C,EAAKytB,cAAc7pB,UAAUoS,cAAgB,SAASpK,GAElD,GAAIA,EAAQ8D,UAAZ,CAEA,GAAIlE,GAAKzL,KAAKyL,EA0Bd,OAxBII,GAAQ8X,YAAYlY,EAAGvF,MAAI2F,EAAQ8X,YAAYlY,EAAGvF,IAAMuF,EAAG0kB,iBAE/D1kB,EAAGgY,YAAYhY,EAAGiY,WAAY7X,EAAQ8X,YAAYlY,EAAGvF,KAErDuF,EAAG8Y,YAAY9Y,EAAG2kB,+BAAgCvkB,EAAQqiB,oBAC1DziB,EAAGkZ,WAAWlZ,EAAGiY,WAAY,EAAGjY,EAAG2Y,KAAM3Y,EAAG2Y,KAAM3Y,EAAGmZ,cAAe/Y,EAAQgG,QAE5EpG,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGqZ,mBAAoBjZ,EAAQlB,YAAc1K,EAAKsB,WAAWE,OAASgK,EAAGhK,OAASgK,EAAG/J,SACrH+J,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGsZ,mBAAoBlZ,EAAQlB,YAAc1K,EAAKsB,WAAWE,OAASgK,EAAGhK,OAASgK,EAAG/J,SAGjHmK,EAAQwkB,WAOR5kB,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGuZ,eAAgBvZ,EAAG6Y,QACtD7Y,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGwZ,eAAgBxZ,EAAG6Y,UANtD7Y,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGuZ,eAAgBvZ,EAAGuY,eACtDvY,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGwZ,eAAgBxZ,EAAGuY,gBAQ1DnY,EAAQyZ,OAAO7Z,EAAGvF,KAAM,EAEhB2F,EAAQ8X,YAAYlY,EAAGvF,MAUnCjG,EAAKytB,cAAc7pB,UAAUiqB,kBAAoB,SAASwC,GAEtDA,EAAMC,iBACNvwB,KAAKqvB,aAAc,GAUvBpvB,EAAKytB,cAAc7pB,UAAUmqB,sBAAwB,WAEjDhuB,KAAK4uB,aAGL,KAAI,GAAIjM,KAAO1iB,GAAK+R,aACpB,CACI,GAAInG,GAAU5L,EAAK+R,aAAa2Q,GAAKjT,WACrC7D,GAAQ8X,eAGZ3jB,KAAKqvB,aAAc,GAQvBpvB,EAAKytB,cAAc7pB,UAAUqI,QAAU,WAGnClM,KAAKyC,KAAKya,oBAAoB,mBAAoBld,KAAK6tB,kBACvD7tB,KAAKyC,KAAKya,oBAAoB,uBAAwBld,KAAK+tB,sBAE3D9tB,EAAKwtB,WAAWztB,KAAK8uB,aAAe,KAEpC9uB,KAAKymB,WAAa,KAClBzmB,KAAK0mB,OAAS,KAGd1mB,KAAK2S,cAAczG,UACnBlM,KAAK4O,YAAY1C,UACjBlM,KAAKiP,YAAY/C,UACjBlM,KAAK8O,cAAc5C,UAEnBlM,KAAK2S,cAAgB,KACrB3S,KAAK4O,YAAc,KACnB5O,KAAKiP,YAAc,KACnBjP,KAAK8O,cAAgB,KAErB9O,KAAKyL,GAAK,KACVzL,KAAKuL,cAAgB,MAQzBtL,EAAKytB,cAAc7pB,UAAUgrB,cAAgB,WAEzC,GAAIpjB,GAAKzL,KAAKyL,EAEVxL,GAAKuwB,kBAELvwB,EAAKuwB,mBAELvwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWC,SAAkBmL,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWE,MAAkBkL,EAAGklB,UAAWllB,EAAGmlB,WACxE3wB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWG,WAAkBiL,EAAGolB,UAAWplB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWI,SAAkBgL,EAAGklB,UAAWllB,EAAGglB,KACxExwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWK,UAAkB+K,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWM,SAAkB8K,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWO,UAAkB6K,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWQ,cAAkB4K,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWS,aAAkB2K,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWU,aAAkB0K,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWW,aAAkByK,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWY,aAAkBwK,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWa,YAAkBuK,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWc,MAAkBsK,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWe,aAAkBqK,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWgB,QAAkBoK,EAAGglB,IAAWhlB,EAAGilB,qBACxEzwB,EAAKuwB,gBAAgBvwB,EAAKI,WAAWiB,aAAkBmK,EAAGglB,IAAWhlB,EAAGilB,uBAIhFzwB,EAAKytB,cAAcoB,YAAc,EAWjC7uB,EAAKyuB,sBAAwB,WAMzB1uB,KAAK6Q,iBAAmB,OAG5B5Q,EAAKyuB,sBAAsB7qB,UAAUsB,YAAclF,EAAKyuB,sBAQxDzuB,EAAKyuB,sBAAsB7qB,UAAUurB,WAAa,SAAS3jB,GAEvDzL,KAAKyL,GAAKA,GASdxL,EAAKyuB,sBAAsB7qB,UAAUqsB,aAAe,SAAS1gB,GAEzD,GAAGxP,KAAK6Q,mBAAqBrB,EAAU,OAAO,CAE9CxP,MAAK6Q,iBAAmBrB,CAExB,IAAIshB,GAAiB7wB,EAAKuwB,gBAAgBxwB,KAAK6Q,iBAG/C,OAFA7Q,MAAKyL,GAAGslB,UAAUD,EAAe,GAAIA,EAAe,KAE7C,GAQX7wB,EAAKyuB,sBAAsB7qB,UAAUqI,QAAU,WAE3ClM,KAAKyL,GAAK,MAYdxL,EAAKquB,iBAAmB,aAIxBruB,EAAKquB,iBAAiBzqB,UAAUsB,YAAclF,EAAKquB,iBAQnDruB,EAAKquB,iBAAiBzqB,UAAUurB,WAAa,SAAS3jB,GAElDzL,KAAKyL,GAAKA,GAUdxL,EAAKquB,iBAAiBzqB,UAAUqL,SAAW,SAAS8hB,EAAUzlB,GAE1D,GAAIE,GAAKF,EAAcE,EAEpBulB,GAASxnB,OAERvJ,EAAKomB,cAAcO,eAAeoK,EAAUvlB,GAG5CulB,EAASlK,OAAOrb,EAAGvF,IAAI0Q,KAAKvS,QAEhCkH,EAAcyb,eAAeC,YAAY+J,EAAUA,EAASlK,OAAOrb,EAAGvF,IAAI0Q,KAAK,GAAIrL,IAUvFtL,EAAKquB,iBAAiBzqB,UAAUwL,QAAU,SAAS2hB,EAAUzlB,GAEzD,GAAIE,GAAKzL,KAAKyL,EACdF,GAAcyb,eAAeM,WAAW0J,EAAUA,EAASlK,OAAOrb,EAAGvF,IAAI0Q,KAAK,GAAIrL,IAQtFtL,EAAKquB,iBAAiBzqB,UAAUqI,QAAU,WAEtClM,KAAKyL,GAAK,MAYdxL,EAAKuuB,oBAAsB,WAEvBxuB,KAAKixB,gBACLjxB,KAAKkxB,SAAU,EACflxB,KAAKmxB,MAAQ,GASjBlxB,EAAKuuB,oBAAoB3qB,UAAUurB,WAAa,SAAS3jB,GAErDzL,KAAKyL,GAAKA,GAWdxL,EAAKuuB,oBAAoB3qB,UAAUojB,YAAc,SAASV,EAAUC,EAAWjb,GAE3E,GAAIE,GAAKzL,KAAKyL,EACdzL,MAAKoxB,aAAa7K,EAAUC,EAAWjb,GAEP,IAA7BvL,KAAKixB,aAAa5sB,SAEjBoH,EAAGyjB,OAAOzjB,EAAG4lB,cACb5lB,EAAGqkB,MAAMrkB,EAAG6lB,oBACZtxB,KAAKkxB,SAAU,EACflxB,KAAKmxB,MAAQ,GAGjBnxB,KAAKixB,aAAa3sB,KAAKkiB,EAEvB,IAAI+K,GAAQvxB,KAAKmxB,KAEjB1lB,GAAG+lB,WAAU,GAAO,GAAO,GAAO,GAElC/lB,EAAGgmB,YAAYhmB,EAAGimB,OAAO,EAAE,KAC3BjmB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGomB,QAIV,IAAnBrL,EAAUO,MAETtb,EAAGyb,aAAazb,EAAG0b,aAAeX,EAAUa,QAAQhjB,OAAS,EAAGoH,EAAG2b,eAAgB,GAEhFpnB,KAAKkxB,SAEJzlB,EAAGgmB,YAAYhmB,EAAGqmB,MAAO,IAAOP,EAAO,KACvC9lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGsmB,QAIhCtmB,EAAGgmB,YAAYhmB,EAAGqmB,MAAMP,EAAO,KAC/B9lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGumB,OAIpCvmB,EAAGyb,aAAazb,EAAG0b,aAAc,EAAG1b,EAAG2b,eAAmD,GAAjCZ,EAAUa,QAAQhjB,OAAS,IAEjFrE,KAAKkxB,QAEJzlB,EAAGgmB,YAAYhmB,EAAGqmB,MAAM,KAAMP,EAAM,GAAI,KAIxC9lB,EAAGgmB,YAAYhmB,EAAGqmB,MAAMP,EAAM,EAAG,KAGrCvxB,KAAKkxB,SAAWlxB,KAAKkxB,UAIjBlxB,KAAKkxB,SAOLzlB,EAAGgmB,YAAYhmB,EAAGqmB,MAAMP,EAAO,KAC/B9lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGumB,QANhCvmB,EAAGgmB,YAAYhmB,EAAGqmB,MAAO,IAAOP,EAAO,KACvC9lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGsmB,OAQpCtmB,EAAGyb,aAAazb,EAAGwc,eAAiBzB,EAAUa,QAAQhjB,OAAQoH,EAAG2b,eAAgB,GAE7EpnB,KAAKkxB,QAMLzlB,EAAGgmB,YAAYhmB,EAAGqmB,MAAMP,EAAM,EAAG,KAJjC9lB,EAAGgmB,YAAYhmB,EAAGqmB,MAAM,KAAMP,EAAM,GAAI,MAQhD9lB,EAAG+lB,WAAU,GAAM,GAAM,GAAM,GAC/B/lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGmmB,MAEhC5xB,KAAKmxB,SAWTlxB,EAAKuuB,oBAAoB3qB,UAAUutB,aAAe,SAAS7K,EAAUC,EAAWjb,GAG5EvL,KAAKiyB,iBAAmB1L,CAExB,IAKI9W,GALAhE,EAAKzL,KAAKyL,GAGVgb,EAAalb,EAAckb,WAC3BC,EAASnb,EAAcmb,MAGL,KAAnBF,EAAUO,MAETtX,EAASlE,EAAcoH,cAAcuf,uBAErC3mB,EAAcoH,cAAcC,UAAWnD,GAEvChE,EAAG6X,iBAAiB7T,EAAOsW,mBAAmB,EAAOQ,EAAS7d,eAAe7C,SAAQ,IAErF4F,EAAG8b,UAAU9X,EAAO2S,iBAAkBqE,EAAWliB,GAAIkiB,EAAWjiB,GAChEiH,EAAG8b,UAAU9X,EAAO4S,cAAeqE,EAAOniB,GAAImiB,EAAOliB,GAErDiH,EAAG+b,WAAW/X,EAAOyW,UAAWjmB,EAAKyZ,QAAQ6M,EAAShX,OACtD9D,EAAG+b,WAAW/X,EAAO2W,MAAOI,EAAUJ,OAEtC3a,EAAGgc,UAAUhY,EAAOzH,MAAOue,EAAShe,WAAaie,EAAUxe,OAE3DyD,EAAGic,WAAWjc,EAAGkc,aAAcnB,EAAUoB,QAEzCnc,EAAGoc,oBAAoBpY,EAAO8S,gBAAiB,EAAG9W,EAAGqc,OAAO,EAAO,EAAO,GAK1Erc,EAAGic,WAAWjc,EAAGsc,qBAAsBvB,EAAUwB,eAKjDvY,EAASlE,EAAcoH,cAAcgU,gBACrCpb,EAAcoH,cAAcC,UAAWnD,GAEvChE,EAAG6X,iBAAiB7T,EAAOsW,mBAAmB,EAAOQ,EAAS7d,eAAe7C,SAAQ,IAErF4F,EAAG8b,UAAU9X,EAAO2S,iBAAkBqE,EAAWliB,GAAIkiB,EAAWjiB,GAChEiH,EAAG8b,UAAU9X,EAAO4S,cAAeqE,EAAOniB,GAAImiB,EAAOliB,GAErDiH,EAAG+b,WAAW/X,EAAOyW,UAAWjmB,EAAKyZ,QAAQ6M,EAAShX,OAEtD9D,EAAGgc,UAAUhY,EAAOzH,MAAOue,EAAShe,YAEpCkD,EAAGic,WAAWjc,EAAGkc,aAAcnB,EAAUoB,QAEzCnc,EAAGoc,oBAAoBpY,EAAO8S,gBAAiB,EAAG9W,EAAGqc,OAAO,EAAO,GAAO,GAC1Erc,EAAGoc,oBAAoBpY,EAAOiT,eAAgB,EAAGjX,EAAGqc,OAAO,EAAM,GAAO,GAGxErc,EAAGic,WAAWjc,EAAGsc,qBAAsBvB,EAAUwB,eAUzD/nB,EAAKuuB,oBAAoB3qB,UAAUyjB,WAAa,SAASf,EAAUC,EAAWjb,GAE7E,GAAIE,GAAKzL,KAAKyL,EAKX,IAJAzL,KAAKixB,aAAanY,MAElB9Y,KAAKmxB,QAE2B,IAA7BnxB,KAAKixB,aAAa5sB,OAGjBoH,EAAGsjB,QAAQtjB,EAAG4lB,kBAIlB,CAEI,GAAIE,GAAQvxB,KAAKmxB,KAEjBnxB,MAAKoxB,aAAa7K,EAAUC,EAAWjb,GAEvCE,EAAG+lB,WAAU,GAAO,GAAO,GAAO,GAEZ,IAAnBhL,EAAUO,MAET/mB,KAAKkxB,SAAWlxB,KAAKkxB,QAElBlxB,KAAKkxB,SAEJzlB,EAAGgmB,YAAYhmB,EAAGqmB,MAAO,KAAQP,EAAM,GAAI,KAC3C9lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGumB,QAIhCvmB,EAAGgmB,YAAYhmB,EAAGqmB,MAAMP,EAAM,EAAG,KACjC9lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGsmB,OAIpCtmB,EAAGyb,aAAazb,EAAG0b,aAAc,EAAG1b,EAAG2b,eAAmD,GAAjCZ,EAAUa,QAAQhjB,OAAS,IAEpFoH,EAAGgmB,YAAYhmB,EAAGimB,OAAO,EAAE,KAC3BjmB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGomB,QAGhCpmB,EAAGyb,aAAazb,EAAG0b,aAAeX,EAAUa,QAAQhjB,OAAS,EAAGoH,EAAG2b,eAAgB,GAE/EpnB,KAAKkxB,QAMLzlB,EAAGgmB,YAAYhmB,EAAGqmB,MAAMP,EAAO,KAJ/B9lB,EAAGgmB,YAAYhmB,EAAGqmB,MAAM,IAAK,EAAS,OAWtC9xB,KAAKkxB,SAOLzlB,EAAGgmB,YAAYhmB,EAAGqmB,MAAMP,EAAM,EAAG,KACjC9lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGsmB,QANhCtmB,EAAGgmB,YAAYhmB,EAAGqmB,MAAO,KAAQP,EAAM,GAAI,KAC3C9lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGumB,OAQpCvmB,EAAGyb,aAAazb,EAAGwc,eAAiBzB,EAAUa,QAAQhjB,OAAQoH,EAAG2b,eAAgB,GAE7EpnB,KAAKkxB,QAMLzlB,EAAGgmB,YAAYhmB,EAAGqmB,MAAMP,EAAO,KAJ/B9lB,EAAGgmB,YAAYhmB,EAAGqmB,MAAM,IAAK,EAAS,MAQ9CrmB,EAAG+lB,WAAU,GAAM,GAAM,GAAM,GAC/B/lB,EAAGkmB,UAAUlmB,EAAGmmB,KAAKnmB,EAAGmmB,KAAKnmB,EAAGmmB;GAWxC3xB,EAAKuuB,oBAAoB3qB,UAAUqI,QAAU,WAEzClM,KAAKixB,aAAe,KACpBjxB,KAAKyL,GAAK,MAYdxL,EAAKmuB,mBAAqB,WAMtBpuB,KAAKmyB,UAAY,GAMjBnyB,KAAKoyB,eAMLpyB,KAAKqyB,kBAEL,KAAK,GAAIluB,GAAI,EAAGA,EAAInE,KAAKmyB,UAAWhuB,IAEhCnE,KAAKoyB,YAAYjuB,IAAK,CAO1BnE,MAAKsyB,UAITryB,EAAKmuB,mBAAmBvqB,UAAUsB,YAAclF,EAAKmuB,mBAQrDnuB,EAAKmuB,mBAAmBvqB,UAAUurB,WAAa,SAAS3jB,GAEpDzL,KAAKyL,GAAKA,EAGVzL,KAAK2mB,gBAAkB,GAAI1mB,GAAKgmB,gBAAgBxa,GAGhDzL,KAAKkyB,uBAAyB,GAAIjyB,GAAKkmB,uBAAuB1a,GAG9DzL,KAAKuyB,cAAgB,GAAItyB,GAAKyhB,WAAWjW,GAGzCzL,KAAK6S,WAAa,GAAI5S,GAAKwlB,eAAeha,GAG1CzL,KAAKwyB,YAAc,GAAIvyB,GAAK6lB,YAAYra,GACxCzL,KAAK4S,UAAU5S,KAAKuyB,gBASxBtyB,EAAKmuB,mBAAmBvqB,UAAU4uB,WAAa,SAASC,GAGpD,GAAIvuB,EAEJ,KAAKA,EAAI,EAAGA,EAAInE,KAAKqyB,gBAAgBhuB,OAAQF,IAEzCnE,KAAKqyB,gBAAgBluB,IAAK,CAI9B,KAAKA,EAAI,EAAGA,EAAIuuB,EAAQruB,OAAQF,IAChC,CACI,GAAIwuB,GAAWD,EAAQvuB,EACvBnE,MAAKqyB,gBAAgBM,IAAY,EAGrC,GAAIlnB,GAAKzL,KAAKyL,EAEd,KAAKtH,EAAI,EAAGA,EAAInE,KAAKoyB,YAAY/tB,OAAQF,IAElCnE,KAAKoyB,YAAYjuB,KAAOnE,KAAKqyB,gBAAgBluB,KAE5CnE,KAAKoyB,YAAYjuB,GAAKnE,KAAKqyB,gBAAgBluB,GAExCnE,KAAKqyB,gBAAgBluB,GAEpBsH,EAAGmnB,wBAAwBzuB,GAI3BsH,EAAGonB,yBAAyB1uB,KAY5ClE,EAAKmuB,mBAAmBvqB,UAAU+O,UAAY,SAASnD,GAEnD,MAAGzP,MAAK8yB,aAAerjB,EAAO9N,MAAY,GAE1C3B,KAAK8yB,WAAarjB,EAAO9N,KAEzB3B,KAAK+yB,cAAgBtjB,EAErBzP,KAAKyL,GAAGwW,WAAWxS,EAAOkS,SAC1B3hB,KAAKyyB,WAAWhjB,EAAOqS,aAEhB,IAQX7hB,EAAKmuB,mBAAmBvqB,UAAUqI,QAAU,WAExClM,KAAKoyB,YAAc,KAEnBpyB,KAAKqyB,gBAAkB,KAEvBryB,KAAK2mB,gBAAgBza,UAErBlM,KAAKkyB,uBAAuBhmB,UAE5BlM,KAAKuyB,cAAcrmB,UAEnBlM,KAAK6S,WAAW3G,UAEhBlM,KAAKwyB,YAAYtmB,UAEjBlM,KAAKyL,GAAK,MAmBdxL,EAAKouB,iBAAmB,WAMpBruB,KAAKgzB,SAAW,EAOhBhzB,KAAK8X,KAAO,GAGZ,IAAImb,GAAuB,EAAZjzB,KAAK8X,KAAY9X,KAAKgzB,SAEjCE,EAAyB,EAAZlzB,KAAK8X,IAQtB9X,MAAKmzB,SAAW,GAAIlzB,GAAK2B,aAAaqxB,GAQtCjzB,KAAKqnB,QAAU,GAAIpnB,GAAK4B,YAAYqxB,GAMpClzB,KAAKozB,eAAiB,CAEtB,KAAK,GAAIjvB,GAAE,EAAGU,EAAE,EAAOquB,EAAJ/uB,EAAgBA,GAAK,EAAGU,GAAK,EAE5C7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,CAO9B7E,MAAKqzB,SAAU,EAMfrzB,KAAKszB,iBAAmB,EAMxBtzB,KAAKuzB,mBAAqB,KAM1BvzB,KAAKwJ,OAAQ,EAMbxJ,KAAKwzB,YAMLxzB,KAAKK,cAMLL,KAAKyzB,WAMLzzB,KAAK0zB,WAML1zB,KAAKuyB,cAAgB,GAAItyB,GAAK0zB,gBAC1B,wBACA,8BACA,uBACA,8BACA,oBACA,kEACA,OAQR1zB,EAAKouB,iBAAiBxqB,UAAUurB,WAAa,SAAS3jB,GAElDzL,KAAKyL,GAAKA,EAGVzL,KAAK4zB,aAAenoB,EAAG2hB,eACvBptB,KAAKgoB,YAAcvc,EAAG2hB,eAKtB3hB,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAKgoB,aAC5Cvc,EAAG6hB,WAAW7hB,EAAGsc,qBAAsB/nB,KAAKqnB,QAAS5b,EAAG8hB,aAExD9hB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK4zB,cACpCnoB,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAKmzB,SAAU1nB,EAAGooB,cAEjD7zB,KAAK6Q,iBAAmB,KAExB,IAAIpB,GAAS,GAAIxP,GAAKyhB,WAAWjW,EAEjCgE,GAAOwR,YAAcjhB,KAAKuyB,cAActR,YACxCxR,EAAOmT,YACPnT,EAAOsS,OAEP/hB,KAAKuyB,cAAckB,QAAQhoB,EAAGvF,IAAMuJ,GAOxCxP,EAAKouB,iBAAiBxqB,UAAUgK,MAAQ,SAAStC,GAE7CvL,KAAKuL,cAAgBA,EACrBvL,KAAKyP,OAASzP,KAAKuL,cAAcoH,cAAc4f,cAE/CvyB,KAAKoP,SAMTnP,EAAKouB,iBAAiBxqB,UAAUiK,IAAM,WAElC9N,KAAK6O,SAOT5O,EAAKouB,iBAAiBxqB,UAAUoH,OAAS,SAAS6oB,GAE9C,GAAIjoB,GAAUioB,EAAOjoB,OAIlB7L,MAAKszB,kBAAoBtzB,KAAK8X,OAE7B9X,KAAK6O,QACL7O,KAAKuzB,mBAAqB1nB,EAAQ6D,YAItC,IAAIqkB,GAAMloB,EAAQmoB,IAElB,IAAID,EAAJ,CAGA,GASI7jB,GAAIC,EAAIC,EAAIC,EATZrI,EAAQ8rB,EAAOvrB,WACfgH,EAAOukB,EAAOvkB,KAEd0kB,EAAYj0B,KAAKmzB,SAGjBe,EAAKJ,EAAO7nB,OAAO1H,EACnB4vB,EAAKL,EAAO7nB,OAAOzH,CAIvB,IAAIqH,EAAQ0F,KACZ,CAEI,GAAIA,GAAO1F,EAAQ0F,IAEnBpB,GAAKoB,EAAKhN,EAAI2vB,EAAK3iB,EAAKpK,MACxB+I,EAAKC,EAAKtE,EAAQ+E,KAAKzJ,MAEvBkJ,EAAKkB,EAAK/M,EAAI2vB,EAAK5iB,EAAKnK,OACxBgJ,EAAKC,EAAKxE,EAAQ+E,KAAKxJ,WAKvB8I,GAAMrE,EAAQkE,MAAY,OAAK,EAAEmkB,GACjC/jB,EAAMtE,EAAQkE,MAAY,OAAKmkB,EAE/B9jB,EAAKvE,EAAQkE,MAAM3I,QAAU,EAAE+sB,GAC/B9jB,EAAKxE,EAAQkE,MAAM3I,QAAU+sB,CAGjC,IAAIxnB,GAAgC,EAAxB3M,KAAKszB,iBAAuBtzB,KAAKgzB,SAEzCnwB,EAAagJ,EAAQ6D,YAAY7M,WAEjC6F,EAAiBorB,EAAOprB,eAExBrD,EAAIqD,EAAerD,EAAIxC,EACvByC,EAAIoD,EAAepD,EAAIzC,EACvB0C,EAAImD,EAAenD,EAAI1C,EACvB2C,EAAIkD,EAAelD,EAAI3C,EACvB4C,EAAKiD,EAAejD,GACpBC,EAAKgD,EAAehD,EAIxBuuB,GAAUtnB,KAAWtH,EAAI8K,EAAK5K,EAAI8K,EAAK5K,EACvCwuB,EAAUtnB,KAAWnH,EAAI6K,EAAK/K,EAAI6K,EAAKzK,EAEvCuuB,EAAUtnB,KAAWonB,EAAIK,GACzBH,EAAUtnB,KAAWonB,EAAIM,GAEzBJ,EAAUtnB,KAAW3E,EACrBisB,EAAUtnB,KAAW4C,EAGrB0kB,EAAUtnB,KAAWtH,EAAI6K,EAAK3K,EAAI8K,EAAK5K,EACvCwuB,EAAUtnB,KAAWnH,EAAI6K,EAAK/K,EAAI4K,EAAKxK,EAEvCuuB,EAAUtnB,KAAWonB,EAAI1sB,GACzB4sB,EAAUtnB,KAAWonB,EAAIzsB,GAEzB2sB,EAAUtnB,KAAW3E,EACrBisB,EAAUtnB,KAAW4C,EAGrB0kB,EAAUtnB,KAAWtH,EAAI6K,EAAK3K,EAAI6K,EAAK3K,EACvCwuB,EAAUtnB,KAAWnH,EAAI4K,EAAK9K,EAAI4K,EAAKxK,EAEvCuuB,EAAUtnB,KAAWonB,EAAIzjB,GACzB2jB,EAAUtnB,KAAWonB,EAAIxjB,GAEzB0jB,EAAUtnB,KAAW3E,EACrBisB,EAAUtnB,KAAW4C,EAGrB0kB,EAAUtnB,KAAWtH,EAAI8K,EAAK5K,EAAI6K,EAAK3K,EACvCwuB,EAAUtnB,KAAWnH,EAAI4K,EAAK9K,EAAI6K,EAAKzK,EAEvCuuB,EAAUtnB,KAAWonB,EAAIvjB,GACzByjB,EAAUtnB,KAAWonB,EAAItjB,GAEzBwjB,EAAUtnB,KAAW3E,EACrBisB,EAAUtnB,KAAW4C,EAGrBvP,KAAK0zB,QAAQ1zB,KAAKszB,oBAAsBQ,IAU5C7zB,EAAKouB,iBAAiBxqB,UAAUywB,mBAAqB,SAASC,GAE1D,GAAI1oB,GAAU0oB,EAAaC,aAGxBx0B,MAAKszB,kBAAoBtzB,KAAK8X,OAG7B9X,KAAK6O,QACL7O,KAAKuzB,mBAAqB1nB,EAAQ6D,aAMlC6kB,EAAaP,OAAKO,EAAaP,KAAO,GAAI/zB,GAAKw0B,WAEnD,IAAIV,GAAMQ,EAAaP,IAEvBO,GAAaG,aAAanwB,GAAKsH,EAAQ6D,YAAYvI,MAAQotB,EAAaI,gBAAgBpwB,EACxFgwB,EAAaG,aAAalwB,GAAKqH,EAAQ6D,YAAYtI,OAASmtB,EAAaI,gBAAgBnwB,CAEzF,IAAIowB,GAAWL,EAAaG,aAAanwB,GAAGsH,EAAQ6D,YAAYvI,MAAMotB,EAAaI,gBAAgBpwB,GAC/FswB,EAAWN,EAAaG,aAAalwB,GAAGqH,EAAQ6D,YAAYtI,OAAOmtB,EAAaI,gBAAgBnwB,GAEhGswB,EAAWP,EAAaptB,MAAQ0E,EAAQ6D,YAAYvI,OAAWotB,EAAaQ,UAAUxwB,EAAIgwB,EAAaI,gBAAgBpwB,GACvHywB,EAAWT,EAAantB,OAASyE,EAAQ6D,YAAYtI,QAAWmtB,EAAaQ,UAAUvwB,EAAI+vB,EAAaI,gBAAgBnwB,EAE5HuvB,GAAIK,GAAK,EAAIQ,EACbb,EAAIM,GAAK,EAAIQ,EAEbd,EAAI1sB,GAAM,EAAIytB,EAAUF,EACxBb,EAAIzsB,GAAK,EAAIutB,EAEbd,EAAIzjB,GAAM,EAAIwkB,EAAUF,EACxBb,EAAIxjB,GAAM,EAAIykB,EAAUH,EAExBd,EAAIvjB,GAAK,EAAIokB,EACbb,EAAItjB,GAAM,EAAGukB,EAAUH,CAGvB,IAAI7sB,GAAQusB,EAAahsB,WACrBgH,EAAOglB,EAAahlB,KAEnB0kB,EAAYj0B,KAAKmzB,SAElBhsB,EAAQotB,EAAaptB,MACrBC,EAASmtB,EAAantB,OAGtB8sB,EAAKK,EAAatoB,OAAO1H,EACzB4vB,EAAKI,EAAatoB,OAAOzH,EACzB0L,EAAK/I,GAAS,EAAE+sB,GAChB/jB,EAAKhJ,GAAS+sB,EAEd9jB,EAAKhJ,GAAU,EAAE+sB,GACjB9jB,EAAKjJ,GAAU+sB,EAEfxnB,EAAgC,EAAxB3M,KAAKszB,iBAAuBtzB,KAAKgzB,SAEzCnwB,EAAagJ,EAAQ6D,YAAY7M,WAEjC6F,EAAiB6rB,EAAa7rB,eAE9BrD,EAAIqD,EAAerD,EAAIxC,EACvByC,EAAIoD,EAAepD,EAAIzC,EACvB0C,EAAImD,EAAenD,EAAI1C,EACvB2C,EAAIkD,EAAelD,EAAI3C,EACvB4C,EAAKiD,EAAejD,GACpBC,EAAKgD,EAAehD,EAGxBuuB,GAAUtnB,KAAWtH,EAAI8K,EAAK5K,EAAI8K,EAAK5K,EACvCwuB,EAAUtnB,KAAWnH,EAAI6K,EAAK/K,EAAI6K,EAAKzK,EAEvCuuB,EAAUtnB,KAAWonB,EAAIK,GACzBH,EAAUtnB,KAAWonB,EAAIM,GAEzBJ,EAAUtnB,KAAW3E,EACrBisB,EAAUtnB,KAAW4C,EAGrB0kB,EAAUtnB,KAAYtH,EAAI6K,EAAK3K,EAAI8K,EAAK5K,EACxCwuB,EAAUtnB,KAAWnH,EAAI6K,EAAK/K,EAAI4K,EAAKxK,EAEvCuuB,EAAUtnB,KAAWonB,EAAI1sB,GACzB4sB,EAAUtnB,KAAWonB,EAAIzsB,GAEzB2sB,EAAUtnB,KAAW3E,EACrBisB,EAAUtnB,KAAW4C,EAGrB0kB,EAAUtnB,KAAWtH,EAAI6K,EAAK3K,EAAI6K,EAAK3K,EACvCwuB,EAAUtnB,KAAWnH,EAAI4K,EAAK9K,EAAI4K,EAAKxK,EAEvCuuB,EAAUtnB,KAAWonB,EAAIzjB,GACzB2jB,EAAUtnB,KAAWonB,EAAIxjB,GAEzB0jB,EAAUtnB,KAAW3E,EACrBisB,EAAUtnB,KAAW4C,EAGrB0kB,EAAUtnB,KAAWtH,EAAI8K,EAAK5K,EAAI6K,EAAK3K,EACvCwuB,EAAUtnB,KAAWnH,EAAI4K,EAAK9K,EAAI6K,EAAKzK,EAEvCuuB,EAAUtnB,KAAWonB,EAAIvjB,GACzByjB,EAAUtnB,KAAWonB,EAAItjB,GAEzBwjB,EAAUtnB,KAAW3E,EACrBisB,EAAUtnB,KAAW4C,EAGrBvP,KAAK0zB,QAAQ1zB,KAAKszB,oBAAsBiB,GAQ5Ct0B,EAAKouB,iBAAiBxqB,UAAUgL,MAAQ,WAGpC,GAA4B,IAAxB7O,KAAKszB,iBAAT,CAEA,GACI7jB,GADAhE,EAAKzL,KAAKyL,EAGd,IAAGzL,KAAKwJ,MACR,CACIxJ,KAAKwJ,OAAQ,EAEbiC,EAAG+X,cAAc/X,EAAGwpB,UAGpBxpB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK4zB,cACpCnoB,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAKgoB,aAE5CvY,EAAUzP,KAAKuyB,cAAckB,QAAQhoB,EAAGvF,GAGxC,IAAIgvB,GAA0B,EAAhBl1B,KAAKgzB,QACnBvnB,GAAGoc,oBAAoBpY,EAAO8S,gBAAiB,EAAG9W,EAAGqc,OAAO,EAAOoN,EAAQ,GAC3EzpB,EAAGoc,oBAAoBpY,EAAOgT,cAAe,EAAGhX,EAAGqc,OAAO,EAAOoN,EAAQ,GACzEzpB,EAAGoc,oBAAoBpY,EAAOiT,eAAgB,EAAGjX,EAAGqc,OAAO,EAAOoN,EAAQ,IAI9E,GAAGl1B,KAAKszB,iBAAiC,GAAZtzB,KAAK8X,KAE9BrM,EAAG0pB,cAAc1pB,EAAGkc,aAAc,EAAG3nB,KAAKmzB,cAG9C,CACI,GAAI1wB,GAAOzC,KAAKmzB,SAASiC,SAAS,EAA2B,EAAxBp1B,KAAKszB,iBAAuBtzB,KAAKgzB,SACtEvnB,GAAG0pB,cAAc1pB,EAAGkc,aAAc,EAAGllB,GAezC,IAAK,GAZD4yB,GAAaC,EAAeC,EAU5BzB,EATA0B,EAAY,EACZpmB,EAAQ,EAERmkB,EAAqB,KACrB1iB,EAAmB7Q,KAAKuL,cAAckjB,iBAAiB5d,iBACvDkiB,EAAgB,KAEhB0C,GAAY,EACZC,GAAa,EAGRvxB,EAAI,EAAGU,EAAI7E,KAAKszB,iBAAsBzuB,EAAJV,EAAOA,IAAK,CAWnD,GATA2vB,EAAS9zB,KAAK0zB,QAAQvvB,GAEtBkxB,EAAcvB,EAAOjoB,QAAQ6D,YAC7B4lB,EAAgBxB,EAAOtkB,UACvB+lB,EAAazB,EAAOrkB,QAAUzP,KAAKuyB,cAEnCkD,EAAY5kB,IAAqBykB,EACjCI,EAAa3C,IAAkBwC,GAE5BhC,IAAuB8B,GAAeI,GAAaC,KAElD11B,KAAK21B,YAAYpC,EAAoBiC,EAAWpmB,GAEhDA,EAAQjL,EACRqxB,EAAY,EACZjC,EAAqB8B,EAEjBI,IAEA5kB,EAAmBykB,EACnBt1B,KAAKuL,cAAckjB,iBAAiByB,aAAcrf,IAGlD6kB,GACJ,CACI3C,EAAgBwC,EAEhB9lB,EAASsjB,EAAcU,QAAQhoB,EAAGvF,IAE9BuJ,IAEAA,EAAS,GAAIxP,GAAKyhB,WAAWjW,GAE7BgE,EAAOwR,YAAa8R,EAAc9R,YAClCxR,EAAOmT,SAAUmQ,EAAcnQ,SAC/BnT,EAAOsS,OAEPgR,EAAcU,QAAQhoB,EAAGvF,IAAMuJ,GAInCzP,KAAKuL,cAAcoH,cAAcC,UAAUnD,GAExCA,EAAOjG,OAAMiG,EAAO0V,cAIvB,IAAIsB,GAAazmB,KAAKuL,cAAckb,UACpChb,GAAG8b,UAAU9X,EAAO2S,iBAAkBqE,EAAWliB,EAAGkiB,EAAWjiB,EAG/D,IAAI6d,GAAeriB,KAAKuL,cAAcmb,MACtCjb,GAAG8b,UAAU9X,EAAO4S,aAAcA,EAAa9d,EAAG8d,EAAa7d,GAMvEgxB,IAGJx1B,KAAK21B,YAAYpC,EAAoBiC,EAAWpmB,GAGhDpP,KAAKszB,iBAAmB,IAS5BrzB,EAAKouB,iBAAiBxqB,UAAU8xB,YAAc,SAAS9pB,EAASiM,EAAM8d,GAElE,GAAY,IAAT9d,EAAH,CAEA,GAAIrM,GAAKzL,KAAKyL,EAGXI,GAAQyZ,OAAO7Z,EAAGvF,IAEjBlG,KAAKuL,cAAcX,SAASqL,cAAcpK,GAK1CJ,EAAGgY,YAAYhY,EAAGiY,WAAY7X,EAAQ8X,YAAYlY,EAAGvF,KAIzDuF,EAAGyb,aAAazb,EAAGoqB,UAAkB,EAAP/d,EAAUrM,EAAG2b,eAA6B,EAAbwO,EAAiB,GAG5E51B,KAAKuL,cAAcojB,cAMvB1uB,EAAKouB,iBAAiBxqB,UAAUmL,KAAO,WAEnChP,KAAK6O,QACL7O,KAAKwJ,OAAQ,GAMjBvJ,EAAKouB,iBAAiBxqB,UAAUuL,MAAQ,WAEpCpP,KAAKwJ,OAAQ,GAQjBvJ,EAAKouB,iBAAiBxqB,UAAUqI,QAAU,WAEtClM,KAAKmzB,SAAW,KAChBnzB,KAAKqnB,QAAU,KAEfrnB,KAAKyL,GAAGqqB,aAAc91B,KAAK4zB,cAC3B5zB,KAAKyL,GAAGqqB,aAAc91B,KAAKgoB,aAE3BhoB,KAAKuzB,mBAAqB,KAE1BvzB,KAAKyL,GAAK,MAiBdxL,EAAKyS,qBAAuB,SAASjH,GAMjCzL,KAAKgzB,SAAW,GAMhBhzB,KAAK+1B,QAAU,IAMf/1B,KAAK8X,KAAO9X,KAAK+1B,OAGjB,IAAI9C,GAAuB,EAAZjzB,KAAK8X,KAAY9X,KAAKgzB,SAGjCE,EAA4B,EAAflzB,KAAK+1B,OAOtB/1B,MAAKmzB,SAAW,GAAIlzB,GAAK2B,aAAaqxB,GAOtCjzB,KAAKqnB,QAAU,GAAIpnB,GAAK4B,YAAYqxB,GAMpClzB,KAAK4zB,aAAe,KAMpB5zB,KAAKgoB,YAAc,KAMnBhoB,KAAKozB,eAAiB,CAEtB,KAAK,GAAIjvB,GAAE,EAAGU,EAAE,EAAOquB,EAAJ/uB,EAAgBA,GAAK,EAAGU,GAAK,EAE5C7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,EAC1B7E,KAAKqnB,QAAQljB,EAAI,GAAKU,EAAI,CAO9B7E,MAAKqzB,SAAU,EAMfrzB,KAAKszB,iBAAmB,EAMxBtzB,KAAKuzB,mBAAqB,KAM1BvzB,KAAK6Q,iBAAmB,EAMxB7Q,KAAKuL,cAAgB,KAMrBvL,KAAKyP,OAAS,KAMdzP,KAAK6G,OAAS,KAEd7G,KAAKovB,WAAW3jB,IAGpBxL,EAAKyS,qBAAqB7O,UAAUsB,YAAclF,EAAKyS,qBAQvDzS,EAAKyS,qBAAqB7O,UAAUurB,WAAa,SAAS3jB,GAEtDzL,KAAKyL,GAAKA,EAGVzL,KAAK4zB,aAAenoB,EAAG2hB,eACvBptB,KAAKgoB,YAAcvc,EAAG2hB,eAKtB3hB,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAKgoB,aAC5Cvc,EAAG6hB,WAAW7hB,EAAGsc,qBAAsB/nB,KAAKqnB,QAAS5b,EAAG8hB,aAExD9hB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK4zB,cACpCnoB,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAKmzB,SAAU1nB,EAAGooB,eAQrD5zB,EAAKyS,qBAAqB7O,UAAUgK,MAAQ,SAASe,EAAarD,GAE9DvL,KAAKuL,cAAgBA,EACrBvL,KAAKyP,OAASzP,KAAKuL,cAAcoH,cAAcE,WAE/C7S,KAAK6G,OAAS+H,EAAYlG,eAAe7C,SAAQ,GAEjD7F,KAAKoP,SAMTnP,EAAKyS,qBAAqB7O,UAAUiK,IAAM,WAEtC9N,KAAK6O,SAOT5O,EAAKyS,qBAAqB7O,UAAUoH,OAAS,SAAS2D,GAElD,GAAIxC,GAAWwC,EAAYxC,SACvB0nB,EAAS1nB,EAAS,EAKtB,IAAI0nB,EAAOjoB,QAAQmoB,KAAnB,CAEAh0B,KAAKuzB,mBAAqBO,EAAOjoB,QAAQ6D,YAGtCokB,EAAOtkB,YAAcxP,KAAKuL,cAAckjB,iBAAiB5d,mBAExD7Q,KAAK6O,QACL7O,KAAKuL,cAAckjB,iBAAiByB,aAAa4D,EAAOtkB,WAG5D,KAAI,GAAIrL,GAAE,EAAEU,EAAGuH,EAAS/H,OAAUQ,EAAFV,EAAKA,IAEjCnE,KAAKg2B,aAAa5pB,EAASjI,GAG/BnE,MAAK6O,UAOT5O,EAAKyS,qBAAqB7O,UAAUmyB,aAAe,SAASlC,GAGxD,GAAIA,EAAO7rB,UAGR6rB,EAAOjoB,QAAQ6D,cAAgB1P,KAAKuzB,qBAEnCvzB,KAAK6O,QACL7O,KAAKuzB,mBAAqBO,EAAOjoB,QAAQ6D,YAErCokB,EAAOjoB,QAAQmoB,OALvB,CAQA,GAAID,GAAgC5sB,EAAOC,EAAQ8I,EAAIC,EAAIC,EAAIC,EAAI1D,EAA1DsnB,EAAYj0B,KAAKmzB,QAO1B,IALAY,EAAMD,EAAOjoB,QAAQmoB,KAErB7sB,EAAQ2sB,EAAOjoB,QAAQkE,MAAM5I,MAC7BC,EAAS0sB,EAAOjoB,QAAQkE,MAAM3I,OAE1B0sB,EAAOjoB,QAAQ0F,KACnB,CAEI,GAAIA,GAAOuiB,EAAOjoB,QAAQ0F,IAE1BpB,GAAKoB,EAAKhN,EAAIuvB,EAAO7nB,OAAO1H,EAAIgN,EAAKpK,MACrC+I,EAAKC,EAAK2jB,EAAOjoB,QAAQ+E,KAAKzJ,MAE9BkJ,EAAKkB,EAAK/M,EAAIsvB,EAAO7nB,OAAOzH,EAAI+M,EAAKnK,OACrCgJ,EAAKC,EAAKyjB,EAAOjoB,QAAQ+E,KAAKxJ,WAI9B8I,GAAM4jB,EAAOjoB,QAAQkE,MAAY,OAAK,EAAE+jB,EAAO7nB,OAAO1H,GACtD4L,EAAM2jB,EAAOjoB,QAAQkE,MAAY,OAAK+jB,EAAO7nB,OAAO1H,EAEpD6L,EAAK0jB,EAAOjoB,QAAQkE,MAAM3I,QAAU,EAAE0sB,EAAO7nB,OAAOzH,GACpD6L,EAAKyjB,EAAOjoB,QAAQkE,MAAM3I,QAAU0sB,EAAO7nB,OAAOzH,CAGtDmI,GAAgC,EAAxB3M,KAAKszB,iBAAuBtzB,KAAKgzB,SAGzCiB,EAAUtnB,KAAWwD,EACrB8jB,EAAUtnB,KAAW0D,EAErB4jB,EAAUtnB,KAAWmnB,EAAOnsB,SAASpD,EACrC0vB,EAAUtnB,KAAWmnB,EAAOnsB,SAASnD,EAGrCyvB,EAAUtnB,KAAWmnB,EAAO1tB,MAAM7B,EAClC0vB,EAAUtnB,KAAWmnB,EAAO1tB,MAAM5B,EAGlCyvB,EAAUtnB,KAAWmnB,EAAO/rB,SAG5BksB,EAAUtnB,KAAWonB,EAAIK,GACzBH,EAAUtnB,KAAWonB,EAAIzsB,GAEzB2sB,EAAUtnB,KAAWmnB,EAAO9rB,MAI5BisB,EAAUtnB,KAAWuD,EACrB+jB,EAAUtnB,KAAW0D,EAErB4jB,EAAUtnB,KAAWmnB,EAAOnsB,SAASpD,EACrC0vB,EAAUtnB,KAAWmnB,EAAOnsB,SAASnD,EAGrCyvB,EAAUtnB,KAAWmnB,EAAO1tB,MAAM7B,EAClC0vB,EAAUtnB,KAAWmnB,EAAO1tB,MAAM5B,EAGlCyvB,EAAUtnB,KAAWmnB,EAAO/rB,SAG5BksB,EAAUtnB,KAAWonB,EAAI1sB,GACzB4sB,EAAUtnB,KAAWonB,EAAIzsB,GAEzB2sB,EAAUtnB,KAAWmnB,EAAO9rB,MAI5BisB,EAAUtnB,KAAWuD,EACrB+jB,EAAUtnB,KAAWyD,EAErB6jB,EAAUtnB,KAAWmnB,EAAOnsB,SAASpD,EACrC0vB,EAAUtnB,KAAWmnB,EAAOnsB,SAASnD,EAGrCyvB,EAAUtnB,KAAWmnB,EAAO1tB,MAAM7B,EAClC0vB,EAAUtnB,KAAWmnB,EAAO1tB,MAAM5B,EAGlCyvB,EAAUtnB,KAAWmnB,EAAO/rB,SAG5BksB,EAAUtnB,KAAWonB,EAAIzjB,GACzB2jB,EAAUtnB,KAAWonB,EAAIxjB,GAEzB0jB,EAAUtnB,KAAWmnB,EAAO9rB,MAM5BisB,EAAUtnB,KAAWwD,EACrB8jB,EAAUtnB,KAAWyD,EAErB6jB,EAAUtnB,KAAWmnB,EAAOnsB,SAASpD,EACrC0vB,EAAUtnB,KAAWmnB,EAAOnsB,SAASnD,EAGrCyvB,EAAUtnB,KAAWmnB,EAAO1tB,MAAM7B,EAClC0vB,EAAUtnB,KAAWmnB,EAAO1tB,MAAM5B,EAGlCyvB,EAAUtnB,KAAWmnB,EAAO/rB,SAG5BksB,EAAUtnB,KAAWonB,EAAIvjB,GACzByjB,EAAUtnB,KAAWonB,EAAItjB,GAEzBwjB,EAAUtnB,KAAWmnB,EAAO9rB,MAG5BhI,KAAKszB,mBAEFtzB,KAAKszB,kBAAoBtzB,KAAK8X,MAE7B9X,KAAK6O,UAOb5O,EAAKyS,qBAAqB7O,UAAUgL,MAAQ,WAGxC,GAA4B,IAAxB7O,KAAKszB,iBAAT,CAEA,GAAI7nB,GAAKzL,KAAKyL,EAUd,IANIzL,KAAKuzB,mBAAmB5P,YAAYlY,EAAGvF,KAAIlG,KAAKuL,cAAcX,SAASqL,cAAcjW,KAAKuzB,mBAAoB9nB,GAElHA,EAAGgY,YAAYhY,EAAGiY,WAAY1jB,KAAKuzB,mBAAmB5P,YAAYlY,EAAGvF,KAIlElG,KAAKszB,iBAAiC,GAAZtzB,KAAK8X,KAE9BrM,EAAG0pB,cAAc1pB,EAAGkc,aAAc,EAAG3nB,KAAKmzB,cAG9C,CACI,GAAI1wB,GAAOzC,KAAKmzB,SAASiC,SAAS,EAA2B,EAAxBp1B,KAAKszB,iBAAuBtzB,KAAKgzB,SAEtEvnB,GAAG0pB,cAAc1pB,EAAGkc,aAAc,EAAGllB,GAIzCgJ,EAAGyb,aAAazb,EAAGoqB,UAAmC,EAAxB71B,KAAKszB,iBAAsB7nB,EAAG2b,eAAgB,GAG5EpnB,KAAKszB,iBAAmB,EAGxBtzB,KAAKuL,cAAcojB,cAOvB1uB,EAAKyS,qBAAqB7O,UAAUmL,KAAO,WAEvChP,KAAK6O,SAMT5O,EAAKyS,qBAAqB7O,UAAUuL,MAAQ,WAExC,GAAI3D,GAAKzL,KAAKyL,EAGdA,GAAG+X,cAAc/X,EAAGwpB,UAGpBxpB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK4zB,cACpCnoB,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAKgoB,YAG5C,IAAIvB,GAAazmB,KAAKuL,cAAckb,UACpChb,GAAG8b,UAAUvnB,KAAKyP,OAAO2S,iBAAkBqE,EAAWliB,EAAGkiB,EAAWjiB,GAGpEiH,EAAG6X,iBAAiBtjB,KAAKyP,OAAOiW,SAAS,EAAO1lB,KAAK6G,OAGrD,IAAIquB,GAA0B,EAAhBl1B,KAAKgzB,QAEnBvnB,GAAGoc,oBAAoB7nB,KAAKyP,OAAO8S,gBAAiB,EAAG9W,EAAGqc,OAAO,EAAOoN,EAAQ,GAChFzpB,EAAGoc,oBAAoB7nB,KAAKyP,OAAOkW,eAAgB,EAAGla,EAAGqc,OAAO,EAAOoN,EAAQ,GAC/EzpB,EAAGoc,oBAAoB7nB,KAAKyP,OAAOmW,OAAQ,EAAGna,EAAGqc,OAAO,EAAOoN,EAAQ,IACvEzpB,EAAGoc,oBAAoB7nB,KAAKyP,OAAOoW,UAAW,EAAGpa,EAAGqc,OAAO,EAAOoN,EAAQ,IAC1EzpB,EAAGoc,oBAAoB7nB,KAAKyP,OAAOgT,cAAe,EAAGhX,EAAGqc,OAAO,EAAOoN,EAAQ,IAC9EzpB,EAAGoc,oBAAoB7nB,KAAKyP,OAAOiT,eAAgB,EAAGjX,EAAGqc,OAAO,EAAOoN,EAAQ,KAYnFj1B,EAAKsuB,mBAAqB,WAMtBvuB,KAAKi2B,eAMLj2B,KAAK40B,QAAU,EAMf50B,KAAK60B,QAAU,GAGnB50B,EAAKsuB,mBAAmB1qB,UAAUsB,YAAclF,EAAKsuB,mBAQrDtuB,EAAKsuB,mBAAmB1qB,UAAUurB,WAAa,SAAS3jB,GAEpDzL,KAAKyL,GAAKA,EACVzL,KAAKk2B,eAELl2B,KAAKm2B,qBAQTl2B,EAAKsuB,mBAAmB1qB,UAAUgK,MAAQ,SAAStC,EAAeqc,GAE9D5nB,KAAKuL,cAAgBA,EACrBvL,KAAKuyB,cAAgBhnB,EAAcoH,cAAc4f,aAEjD,IAAI9L,GAAazmB,KAAKuL,cAAckb,UACpCzmB,MAAKmH,MAAuB,EAAfsf,EAAWliB,EACxBvE,KAAKoH,OAAyB,GAAfqf,EAAWjiB,EAC1BxE,KAAK4nB,OAASA,GASlB3nB,EAAKsuB,mBAAmB1qB,UAAUkL,WAAa,SAASqnB,GAEpD,GAAI3qB,GAAKzL,KAAKyL,GAEVgb,EAAazmB,KAAKuL,cAAckb,WAChCC,EAAS1mB,KAAKuL,cAAcmb,MAEhC0P,GAAYC,YAAcD,EAAYrsB,OAAOlB,YAAcutB,EAAYrsB,OAAOQ,YAI9EvK,KAAKi2B,YAAY3xB,KAAK8xB,EAEtB,IAAIE,GAASF,EAAYvsB,aAAa,EAEtC7J,MAAK40B,SAAWwB,EAAYC,YAAY9xB,EACxCvE,KAAK60B,SAAWuB,EAAYC,YAAY7xB,CAExC,IAAIqH,GAAU7L,KAAKk2B,YAAYpd,KAC3BjN,GAMAA,EAAQC,OAAO9L,KAAKmH,MAAOnH,KAAKoH,QAJhCyE,EAAU,GAAI5L,GAAKs2B,cAAcv2B,KAAKyL,GAAIzL,KAAKmH,MAAOnH,KAAKoH,QAO/DqE,EAAGgY,YAAYhY,EAAGiY,WAAa7X,EAAQA,QAEvC,IAAIhD,GAAautB,EAAYC,YAEzBG,EAAUF,EAAOE,OACrB3tB,GAAWtE,GAAKiyB,EAChB3tB,EAAWrE,GAAKgyB,EAChB3tB,EAAW1B,OAAmB,EAAVqvB,EACpB3tB,EAAWzB,QAAoB,EAAVovB,EAGlB3tB,EAAWtE,EAAI,IAAEsE,EAAWtE,EAAI,GAChCsE,EAAW1B,MAAQnH,KAAKmH,QAAM0B,EAAW1B,MAAQnH,KAAKmH,OACtD0B,EAAWrE,EAAI,IAAEqE,EAAWrE,EAAI,GAChCqE,EAAWzB,OAASpH,KAAKoH,SAAOyB,EAAWzB,OAASpH,KAAKoH,QAG5DqE,EAAGkkB,gBAAgBlkB,EAAGmkB,YAAa/jB,EAAQ4qB,aAG3ChrB,EAAGikB,SAAS,EAAG,EAAG7mB,EAAW1B,MAAO0B,EAAWzB,QAE/Cqf,EAAWliB,EAAIsE,EAAW1B,MAAM,EAChCsf,EAAWjiB,GAAKqE,EAAWzB,OAAO,EAElCsf,EAAOniB,GAAKsE,EAAWtE,EACvBmiB,EAAOliB,GAAKqE,EAAWrE,EAQvBiH,EAAG+lB,WAAU,GAAM,GAAM,GAAM,GAC/B/lB,EAAGokB,WAAW,EAAE,EAAE,EAAG,GACrBpkB,EAAGqkB,MAAMrkB,EAAGskB,kBAEZqG,EAAYM,iBAAmB7qB,GASnC5L,EAAKsuB,mBAAmB1qB,UAAUyL,UAAY,WAE1C,GAAI7D,GAAKzL,KAAKyL,GACV2qB,EAAcp2B,KAAKi2B,YAAYnd,MAC/BjQ,EAAautB,EAAYC,YACzBxqB,EAAUuqB,EAAYM,iBACtBjQ,EAAazmB,KAAKuL,cAAckb,WAChCC,EAAS1mB,KAAKuL,cAAcmb,MAEhC,IAAG0P,EAAYvsB,aAAaxF,OAAS,EACrC,CACIoH,EAAGikB,SAAS,EAAG,EAAG7mB,EAAW1B,MAAO0B,EAAWzB,QAE/CqE,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK4zB,cAEpC5zB,KAAK22B,YAAY,GAAK,EACtB32B,KAAK22B,YAAY,GAAK9tB,EAAWzB,OAEjCpH,KAAK22B,YAAY,GAAK9tB,EAAW1B,MACjCnH,KAAK22B,YAAY,GAAK9tB,EAAWzB,OAEjCpH,KAAK22B,YAAY,GAAK,EACtB32B,KAAK22B,YAAY,GAAK,EAEtB32B,KAAK22B,YAAY,GAAK9tB,EAAW1B,MACjCnH,KAAK22B,YAAY,GAAK,EAEtBlrB,EAAG0pB,cAAc1pB,EAAGkc,aAAc,EAAG3nB,KAAK22B,aAE1ClrB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK42B,UAEpC52B,KAAK62B,QAAQ,GAAKhuB,EAAW1B,MAAMnH,KAAKmH,MACxCnH,KAAK62B,QAAQ,GAAKhuB,EAAWzB,OAAOpH,KAAKoH,OACzCpH,KAAK62B,QAAQ,GAAKhuB,EAAW1B,MAAMnH,KAAKmH,MACxCnH,KAAK62B,QAAQ,GAAKhuB,EAAWzB,OAAOpH,KAAKoH,OAEzCqE,EAAG0pB,cAAc1pB,EAAGkc,aAAc,EAAG3nB,KAAK62B,QAE1C,IAAIC,GAAejrB,EACfkrB,EAAgB/2B,KAAKk2B,YAAYpd,KACjCie,KAAcA,EAAgB,GAAI92B,GAAKs2B,cAAcv2B,KAAKyL,GAAIzL,KAAKmH,MAAOnH,KAAKoH,SACnF2vB,EAAcjrB,OAAO9L,KAAKmH,MAAOnH,KAAKoH,QAGtCqE,EAAGkkB,gBAAgBlkB,EAAGmkB,YAAamH,EAAcN,aACjDhrB,EAAGqkB,MAAMrkB,EAAGskB,kBAEZtkB,EAAGsjB,QAAQtjB,EAAG0jB,MAEd,KAAK,GAAIhrB,GAAI,EAAGA,EAAIiyB,EAAYvsB,aAAaxF,OAAO,EAAGF,IACvD,CACI,GAAI6yB,GAAaZ,EAAYvsB,aAAa1F,EAE1CsH,GAAGkkB,gBAAgBlkB,EAAGmkB,YAAamH,EAAcN,aAGjDhrB,EAAG+X,cAAc/X,EAAGwpB,UACpBxpB,EAAGgY,YAAYhY,EAAGiY,WAAYoT,EAAajrB,SAI3C7L,KAAKi3B,gBAAgBD,EAAYnuB,EAAYA,EAAW1B,MAAO0B,EAAWzB,OAG1E,IAAI8vB,GAAOJ,CACXA,GAAeC,EACfA,EAAgBG,EAGpBzrB,EAAGyjB,OAAOzjB,EAAG0jB,OAEbtjB,EAAUirB,EACV92B,KAAKk2B,YAAY5xB,KAAKyyB,GAG1B,GAAIT,GAASF,EAAYvsB,aAAausB,EAAYvsB,aAAaxF,OAAO,EAEtErE,MAAK40B,SAAW/rB,EAAWtE,EAC3BvE,KAAK60B,SAAWhsB,EAAWrE,CAE3B,IAAI2yB,GAAQn3B,KAAKmH,MACbiwB,EAAQp3B,KAAKoH,OAEbwtB,EAAU,EACVC,EAAU,EAEVjN,EAAS5nB,KAAK4nB,MAGlB,IAA+B,IAA5B5nB,KAAKi2B,YAAY5xB,OAEhBoH,EAAG+lB,WAAU,GAAM,GAAM,GAAM,OAGnC,CACI,GAAI6F,GAAgBr3B,KAAKi2B,YAAYj2B,KAAKi2B,YAAY5xB,OAAO,EAC7DwE,GAAawuB,EAAchB,YAE3Bc,EAAQtuB,EAAW1B,MACnBiwB,EAAQvuB,EAAWzB,OAEnBwtB,EAAU/rB,EAAWtE,EACrBswB,EAAUhsB,EAAWrE,EAErBojB,EAAUyP,EAAcX,iBAAiBD,YAI7ChQ,EAAWliB,EAAI4yB,EAAM,EACrB1Q,EAAWjiB,GAAK4yB,EAAM,EAEtB1Q,EAAOniB,EAAIqwB,EACXlO,EAAOliB,EAAIqwB,EAEXhsB,EAAautB,EAAYC,WAEzB,IAAI9xB,GAAIsE,EAAWtE,EAAEqwB,EACjBpwB,EAAIqE,EAAWrE,EAAEqwB,CAIrBppB,GAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK4zB,cAEpC5zB,KAAK22B,YAAY,GAAKpyB,EACtBvE,KAAK22B,YAAY,GAAKnyB,EAAIqE,EAAWzB,OAErCpH,KAAK22B,YAAY,GAAKpyB,EAAIsE,EAAW1B,MACrCnH,KAAK22B,YAAY,GAAKnyB,EAAIqE,EAAWzB,OAErCpH,KAAK22B,YAAY,GAAKpyB,EACtBvE,KAAK22B,YAAY,GAAKnyB,EAEtBxE,KAAK22B,YAAY,GAAKpyB,EAAIsE,EAAW1B,MACrCnH,KAAK22B,YAAY,GAAKnyB,EAEtBiH,EAAG0pB,cAAc1pB,EAAGkc,aAAc,EAAG3nB,KAAK22B,aAE1ClrB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK42B,UAEpC52B,KAAK62B,QAAQ,GAAKhuB,EAAW1B,MAAMnH,KAAKmH,MACxCnH,KAAK62B,QAAQ,GAAKhuB,EAAWzB,OAAOpH,KAAKoH,OACzCpH,KAAK62B,QAAQ,GAAKhuB,EAAW1B,MAAMnH,KAAKmH,MACxCnH,KAAK62B,QAAQ,GAAKhuB,EAAWzB,OAAOpH,KAAKoH,OAEzCqE,EAAG0pB,cAAc1pB,EAAGkc,aAAc,EAAG3nB,KAAK62B,SAE1CprB,EAAGikB,SAAS,EAAG,EAAGyH,EAAOC,GAGzB3rB,EAAGkkB,gBAAgBlkB,EAAGmkB,YAAahI,GAMnCnc,EAAG+X,cAAc/X,EAAGwpB,UACpBxpB,EAAGgY,YAAYhY,EAAGiY,WAAY7X,EAAQA,SAGtC7L,KAAKi3B,gBAAgBX,EAAQztB,EAAYsuB,EAAOC,GAQhDp3B,KAAKk2B,YAAY5xB,KAAKuH,GACtBuqB,EAAYM,iBAAmB,MAanCz2B,EAAKsuB,mBAAmB1qB,UAAUozB,gBAAkB,SAASX,EAAQztB,EAAY1B,EAAOC,GAGpF,GAAIqE,GAAKzL,KAAKyL,GACVgE,EAAS6mB,EAAO7C,QAAQhoB,EAAGvF,GAE3BuJ,KAEAA,EAAS,GAAIxP,GAAKyhB,WAAWjW,GAE7BgE,EAAOwR,YAAcqV,EAAOrV,YAC5BxR,EAAOmT,SAAW0T,EAAO1T,SACzBnT,EAAOsS,OAEPuU,EAAO7C,QAAQhoB,EAAGvF,IAAMuJ,GAI5BzP,KAAKuL,cAAcoH,cAAcC,UAAUnD,GAI3ChE,EAAG8b,UAAU9X,EAAO2S,iBAAkBjb,EAAM,GAAIC,EAAO,GACvDqE,EAAG8b,UAAU9X,EAAO4S,aAAc,EAAE,GAEjCiU,EAAO1T,SAASN,aAEfgU,EAAO1T,SAASN,WAAW/Y,MAAM,GAAKvJ,KAAKmH,MAC3CmvB,EAAO1T,SAASN,WAAW/Y,MAAM,GAAKvJ,KAAKoH,OAC3CkvB,EAAO1T,SAASN,WAAW/Y,MAAM,GAAKvJ,KAAK22B,YAAY,GACvDL,EAAO1T,SAASN,WAAW/Y,MAAM,GAAKvJ,KAAK22B,YAAY,IAG3DlnB,EAAO0V,eAEP1Z,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK4zB,cACpCnoB,EAAGoc,oBAAoBpY,EAAO8S,gBAAiB,EAAG9W,EAAGqc,OAAO,EAAO,EAAG,GAEtErc,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK42B,UACpCnrB,EAAGoc,oBAAoBpY,EAAOgT,cAAe,EAAGhX,EAAGqc,OAAO,EAAO,EAAG,GAEpErc,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAKs3B,aACpC7rB,EAAGoc,oBAAoBpY,EAAOiT,eAAgB,EAAGjX,EAAGqc,OAAO,EAAO,EAAG,GAErErc,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAKgoB,aAG5Cvc,EAAGyb,aAAazb,EAAGoqB,UAAW,EAAGpqB,EAAG2b,eAAgB,GAEpDpnB,KAAKuL,cAAcojB,aAQvB1uB,EAAKsuB,mBAAmB1qB,UAAUsyB,kBAAoB,WAElD,GAAI1qB,GAAKzL,KAAKyL,EAGdzL,MAAK4zB,aAAenoB,EAAG2hB,eACvBptB,KAAK42B,SAAWnrB,EAAG2hB,eACnBptB,KAAKs3B,YAAc7rB,EAAG2hB,eACtBptB,KAAKgoB,YAAcvc,EAAG2hB,eAItBptB,KAAK22B,YAAc,GAAI12B,GAAK2B,cAAc,EAAK,EACV,EAAK,EACL,EAAK,EACL,EAAK,IAE1C6J,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK4zB,cACpCnoB,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAK22B,YAAalrB,EAAG8hB,aAGpDvtB,KAAK62B,QAAU,GAAI52B,GAAK2B,cAAc,EAAK,EACV,EAAK,EACL,EAAK,EACL,EAAK,IAEtC6J,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK42B,UACpCnrB,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAK62B,QAASprB,EAAG8hB,aAEhDvtB,KAAKu3B,WAAa,GAAIt3B,GAAK2B,cAAc,EAAK,SACV,EAAK,SACL,EAAK,SACL,EAAK,WAEzC6J,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAKs3B,aACpC7rB,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAKu3B,WAAY9rB,EAAG8hB,aAGnD9hB,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAKgoB,aAC5Cvc,EAAG6hB,WAAW7hB,EAAGsc,qBAAsB,GAAIlmB,cAAa,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK4J,EAAG8hB,cASnFttB,EAAKsuB,mBAAmB1qB,UAAUqI,QAAU,WAExC,GAAIT,GAAKzL,KAAKyL,EAEdzL,MAAKi2B,YAAc,KAEnBj2B,KAAK40B,QAAU,EACf50B,KAAK60B,QAAU,CAGf,KAAK,GAAI1wB,GAAI,EAAGA,EAAInE,KAAKk2B,YAAY7xB,OAAQF,IACzCnE,KAAKk2B,YAAY/xB,GAAG+H,SAGxBlM,MAAKk2B,YAAc,KAGnBzqB,EAAGqqB,aAAa91B,KAAK4zB,cACrBnoB,EAAGqqB,aAAa91B,KAAK42B,UACrBnrB,EAAGqqB,aAAa91B,KAAKs3B,aACrB7rB,EAAGqqB,aAAa91B,KAAKgoB,cAezB/nB,EAAKs2B,cAAgB,SAAS9qB,EAAItE,EAAOC,EAAQuD,GAM7C3K,KAAKyL,GAAKA,EAQVzL,KAAKy2B,YAAchrB,EAAG+rB,oBAMtBx3B,KAAK6L,QAAUJ,EAAG0kB,gBAMlBxlB,EAAYA,GAAa1K,EAAKsB,WAAWC,QAEzCiK,EAAGgY,YAAYhY,EAAGiY,WAAa1jB,KAAK6L,SACpCJ,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGqZ,mBAAoBna,IAAc1K,EAAKsB,WAAWE,OAASgK,EAAGhK,OAASgK,EAAG/J,SAC7G+J,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGsZ,mBAAoBpa,IAAc1K,EAAKsB,WAAWE,OAASgK,EAAGhK,OAASgK,EAAG/J,SAC7G+J,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGuZ,eAAgBvZ,EAAGuY,eACtDvY,EAAGoZ,cAAcpZ,EAAGiY,WAAYjY,EAAGwZ,eAAgBxZ,EAAGuY,eACtDvY,EAAGkkB,gBAAgBlkB,EAAGmkB,YAAa5vB,KAAKy2B,aAExChrB,EAAGkkB,gBAAgBlkB,EAAGmkB,YAAa5vB,KAAKy2B,aACxChrB,EAAGgsB,qBAAqBhsB,EAAGmkB,YAAankB,EAAGisB,kBAAmBjsB,EAAGiY,WAAY1jB,KAAK6L,QAAS,GAG3F7L,KAAK23B,aAAelsB,EAAGmsB,qBACvBnsB,EAAGosB,iBAAiBpsB,EAAGqsB,aAAc93B,KAAK23B,cAC1ClsB,EAAGssB,wBAAwBtsB,EAAGmkB,YAAankB,EAAGusB,yBAA0BvsB,EAAGqsB,aAAc93B,KAAK23B,cAE9F33B,KAAK8L,OAAO3E,EAAOC,IAGvBnH,EAAKs2B,cAAc1yB,UAAUsB,YAAclF,EAAKs2B,cAOhDt2B,EAAKs2B,cAAc1yB,UAAUisB,MAAQ,WAEjC,GAAIrkB,GAAKzL,KAAKyL,EAEdA,GAAGokB,WAAW,EAAE,EAAE,EAAG,GACrBpkB,EAAGqkB,MAAMrkB,EAAGskB,mBAUhB9vB,EAAKs2B,cAAc1yB,UAAUiI,OAAS,SAAS3E,EAAOC,GAElD,GAAGpH,KAAKmH,QAAUA,GAASnH,KAAKoH,SAAWA,EAA3C,CAEApH,KAAKmH,MAAQA,EACbnH,KAAKoH,OAASA,CAEd,IAAIqE,GAAKzL,KAAKyL,EAEdA,GAAGgY,YAAYhY,EAAGiY,WAAa1jB,KAAK6L,SACpCJ,EAAGkZ,WAAWlZ,EAAGiY,WAAY,EAAGjY,EAAG2Y,KAAOjd,EAAQC,EAAS,EAAGqE,EAAG2Y,KAAM3Y,EAAGmZ,cAAe,MAEzFnZ,EAAGosB,iBAAiBpsB,EAAGqsB,aAAc93B,KAAK23B,cAC1ClsB,EAAGwsB,oBAAoBxsB,EAAGqsB,aAAcrsB,EAAGysB,cAAe/wB,EAAQC,KAQtEnH,EAAKs2B,cAAc1yB,UAAUqI,QAAU,WAEnC,GAAIT,GAAKzL,KAAKyL,EACdA,GAAG0sB,kBAAmBn4B,KAAKy2B,aAC3BhrB,EAAG2sB,cAAep4B,KAAK6L,SAEvB7L,KAAKy2B,YAAc,KACnBz2B,KAAK6L,QAAU,MAenB5L,EAAKo4B,aAAe,SAASlxB,EAAOC,GAQhCpH,KAAKmH,MAAQA,EAQbnH,KAAKoH,OAASA,EAQdpH,KAAKqT,OAASC,SAASC,cAAc,UAQrCvT,KAAK8Q,QAAU9Q,KAAKqT,OAAOG,WAAW,MAEtCxT,KAAKqT,OAAOlM,MAAQA,EACpBnH,KAAKqT,OAAOjM,OAASA,GAGzBnH,EAAKo4B,aAAax0B,UAAUsB,YAAclF,EAAKo4B,aAQ/Cp4B,EAAKo4B,aAAax0B,UAAUisB,MAAQ,WAEhC9vB,KAAK8Q,QAAQM,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACzCpR,KAAK8Q,QAAQwE,UAAU,EAAE,EAAGtV,KAAKmH,MAAOnH,KAAKoH,SAUjDnH,EAAKo4B,aAAax0B,UAAUiI,OAAS,SAAS3E,EAAOC,GAEjDpH,KAAKmH,MAAQnH,KAAKqT,OAAOlM,MAAQA,EACjCnH,KAAKoH,OAASpH,KAAKqT,OAAOjM,OAASA,GAavCnH,EAAKq4B,kBAAoB,aAIzBr4B,EAAKq4B,kBAAkBz0B,UAAUsB,YAAclF,EAAKq4B,kBASpDr4B,EAAKq4B,kBAAkBz0B,UAAUqL,SAAW,SAAS8hB,EAAUzlB,GAE9D,GAAIuF,GAAUvF,EAAcuF,OAEzBA,GAAQynB,MAER,IAAIC,GAAaxH,EAAShpB,MACtB8K,EAAYke,EAAStoB,eAErB7F,EAAa0I,EAAc1I,UAE/BiO,GAAQM,aAAa0B,EAAUzN,EAAIxC,EACdiQ,EAAUxN,EAAIzC,EACdiQ,EAAUvN,EAAI1C,EACdiQ,EAAUtN,EAAI3C,EACdiQ,EAAUrN,GAAK5C,EACfiQ,EAAUpN,GAAK7C,GAEpC5C,EAAKw4B,eAAeC,mBAAmB1H,EAAUlgB,GAEjDA,EAAQ6nB,OAER3H,EAASzoB,WAAaiwB,GAS1Bv4B,EAAKq4B,kBAAkBz0B,UAAUwL,QAAU,SAAS9D,GAEhDA,EAAcuF,QAAQ8nB,WAY1B34B,EAAKyR,aAAe,aAYpBzR,EAAKyR,aAAaC,iBAAmB,SAASmiB,EAAQ1N,GAElD,GAAIva,GAAUioB,EAAOjoB,OAErBua,GAAQnmB,EAAKyR,aAAamnB,WAAWzS,EAErC,IAAI0S,GAAc,KAAO,SAAoB,EAAR1S,GAAW5R,SAAS,KAAKoF,OAAO,GAIrE,IAFA/N,EAAQktB,UAAYltB,EAAQktB,cAEzBltB,EAAQktB,UAAUD,GAAc,MAAOjtB,GAAQktB,UAAUD,EAG5D,IAAIzlB,GAASpT,EAAKyR,aAAa2B,QAAUC,SAASC,cAAc,SAKhE,IAFAtT,EAAKyR,aAAasnB,WAAWntB,EAASua,EAAO/S,GAE1CpT,EAAKyR,aAAaunB,mBACrB,CAEI,GAAIC,GAAY,GAAIC,MACpBD,GAAU3Y,IAAMlN,EAAO+lB,YAEvBvtB,EAAQktB,UAAUD,GAAeI,MAIjCrtB,GAAQktB,UAAUD,GAAezlB,EAEjCpT,EAAKyR,aAAa2B,OAAS,IAG/B,OAAOA,IAWXpT,EAAKyR,aAAa2nB,iBAAmB,SAASxtB,EAASua,EAAO/S,GAE1D,GAAIvC,GAAUuC,EAAOG,WAAY,MAE7B5C,EAAO/E,EAAQ+E,IAEnByC,GAAOlM,MAAQyJ,EAAKzJ,MACpBkM,EAAOjM,OAASwJ,EAAKxJ,OAErB0J,EAAQ6E,UAAY,KAAO,SAAoB,EAARyQ,GAAW5R,SAAS,KAAKoF,OAAO,IAEvE9I,EAAQ2F,SAAS,EAAG,EAAG7F,EAAKzJ,MAAOyJ,EAAKxJ,QAExC0J,EAAQC,yBAA2B,WAEnCD,EAAQc,UAAU/F,EAAQ6D,YAAYmC,OACfjB,EAAKrM,EACLqM,EAAKpM,EACLoM,EAAKzJ,MACLyJ,EAAKxJ,OACL,EACA,EACAwJ,EAAKzJ,MACLyJ,EAAKxJ,QAE5B0J,EAAQC,yBAA2B,mBAEnCD,EAAQc,UAAU/F,EAAQ6D,YAAYmC,OACfjB,EAAKrM,EACLqM,EAAKpM,EACLoM,EAAKzJ,MACLyJ,EAAKxJ,OACL,EACA,EACAwJ,EAAKzJ,MACLyJ,EAAKxJ,SAWhCnH,EAAKyR,aAAa4nB,gBAAkB,SAASztB,EAASua,EAAO/S,GAEzD,GAAIvC,GAAUuC,EAAOG,WAAY,MAE7B5C,EAAO/E,EAAQ+E,IAEnByC,GAAOlM,MAAQyJ,EAAKzJ,MACpBkM,EAAOjM,OAASwJ,EAAKxJ,OAErB0J,EAAQC,yBAA2B,OACnCD,EAAQ6E,UAAY,KAAO,SAAoB,EAARyQ,GAAW5R,SAAS,KAAKoF,OAAO,IACvE9I,EAAQ2F,SAAS,EAAG,EAAG7F,EAAKzJ,MAAOyJ,EAAKxJ,QAExC0J,EAAQC,yBAA2B,mBACnCD,EAAQc,UAAU/F,EAAQ6D,YAAYmC,OACfjB,EAAKrM,EACLqM,EAAKpM,EACLoM,EAAKzJ,MACLyJ,EAAKxJ,OACL,EACA,EACAwJ,EAAKzJ,MACLyJ,EAAKxJ,SAahCnH,EAAKyR,aAAa6nB,iBAAmB,SAAS1tB,EAASua,EAAO/S,GAE1D,GAAIvC,GAAUuC,EAAOG,WAAY,MAE7B5C,EAAO/E,EAAQ+E,IAEnByC,GAAOlM,MAAQyJ,EAAKzJ,MACpBkM,EAAOjM,OAASwJ,EAAKxJ,OAErB0J,EAAQC,yBAA2B,OACnCD,EAAQc,UAAU/F,EAAQ6D,YAAYmC,OACfjB,EAAKrM,EACLqM,EAAKpM,EACLoM,EAAKzJ,MACLyJ,EAAKxJ,OACL,EACA,EACAwJ,EAAKzJ,MACLyJ,EAAKxJ,OAS5B,KAAK,GAPDoyB,GAAYv5B,EAAKyZ,QAAQ0M,GACzBuD,EAAI6P,EAAU,GAAI5P,EAAI4P,EAAU,GAAIl0B,EAAIk0B,EAAU,GAElDC,EAAY3oB,EAAQ6F,aAAa,EAAG,EAAG/F,EAAKzJ,MAAOyJ,EAAKxJ,QAExDyP,EAAS4iB,EAAU7iB,KAEdzS,EAAI,EAAGA,EAAI0S,EAAOxS,OAAQF,GAAK,EAEpC0S,EAAO1S,EAAE,IAAMwlB,EACf9S,EAAO1S,EAAE,IAAMylB,EACf/S,EAAO1S,EAAE,IAAMmB,CAGnBwL,GAAQ4oB,aAAaD,EAAW,EAAG,IASvCx5B,EAAKyR,aAAamnB,WAAa,SAASzS,GAEpC,GAAIuT,GAAO15B,EAAKyR,aAAakoB,0BAEzBJ,EAAYv5B,EAAKyZ,QAAQ0M,EAM7B,OAJAoT,GAAU,GAAKt3B,KAAK23B,IAAI,IAAML,EAAU,GAAKG,EAAQA,GACrDH,EAAU,GAAKt3B,KAAK23B,IAAI,IAAML,EAAU,GAAKG,EAAQA,GACrDH,EAAU,GAAKt3B,KAAK23B,IAAI,IAAML,EAAU,GAAKG,EAAQA,GAE9C15B,EAAK4a,QAAQ2e,IASxBv5B,EAAKyR,aAAakoB,0BAA4B,EAQ9C35B,EAAKyR,aAAaunB,oBAAqB,EAQvCh5B,EAAKyR,aAAaooB,eAAiB75B,EAAK2b,4BAOxC3b,EAAKyR,aAAasnB,WAAa/4B,EAAKyR,aAAaooB,eAAiB75B,EAAKyR,aAAa2nB,iBAAoBp5B,EAAKyR,aAAa6nB,iBAqB1Ht5B,EAAK85B,eAAiB,SAAS5yB,EAAOC,EAAQumB,GAE1C,GAAGA,EAEC,IAAK,GAAIxpB,KAAKlE,GAAKuC,qBAEW,mBAAfmrB,GAAQxpB,KAAoBwpB,EAAQxpB,GAAKlE,EAAKuC,qBAAqB2B,QAKlFwpB,GAAU1tB,EAAKuC,oBAGfvC,GAAK2tB,kBAEL3tB,EAAK+C,SAAS,UACd/C,EAAK2tB,gBAAkB5tB,MAS3BA,KAAKiD,KAAOhD,EAAKE,gBAQjBH,KAAK6C,WAAa8qB,EAAQ9qB,WAY1B7C,KAAK8C,kBAAoB6qB,EAAQ7qB,kBAQjC9C,KAAK0C,YAAcirB,EAAQjrB,YAQ3B1C,KAAK+C,WAAa4qB,EAAQ5qB,aAAc,EAUxC/C,KAAKmH,MAAQA,GAAS,IAStBnH,KAAKoH,OAASA,GAAU,IAExBpH,KAAKmH,OAASnH,KAAK6C,WACnB7C,KAAKoH,QAAUpH,KAAK6C,WAQpB7C,KAAKyC,KAAOkrB,EAAQlrB,MAAQ6Q,SAASC,cAAe,UAOpDvT,KAAK8Q,QAAU9Q,KAAKyC,KAAK+Q,WAAY,MAAQxL,MAAOhI,KAAK0C,cAQzD1C,KAAKg6B,SAAU,EAEfh6B,KAAKyC,KAAK0E,MAAQnH,KAAKmH,MAAQnH,KAAK6C,WACpC7C,KAAKyC,KAAK2E,OAASpH,KAAKoH,OAASpH,KAAK6C,WAQtC7C,KAAKmxB,MAAQ,EAObnxB,KAAKiP,YAAc,GAAIhP,GAAKq4B,kBAO5Bt4B,KAAKuL,eACDuF,QAAS9Q,KAAK8Q,QACd7B,YAAajP,KAAKiP,YAClBtE,UAAW,KACX0G,eAAgB,KAMhBF,aAAa,GAGjBnR,KAAK6uB,gBAEL7uB,KAAK8L,OAAO3E,EAAOC,GAEhB,yBAA2BpH,MAAK8Q,QAC/B9Q,KAAKuL,cAAc8F,eAAiB,wBAChC,+BAAiCrR,MAAK8Q,QAC1C9Q,KAAKuL,cAAc8F,eAAiB,8BAChC,4BAA8BrR,MAAK8Q,QACvC9Q,KAAKuL,cAAc8F,eAAiB,2BAChC,0BAA4BrR,MAAK8Q,QACrC9Q,KAAKuL,cAAc8F,eAAiB,yBAC/B,2BAA6BrR,MAAK8Q,UACvC9Q,KAAKuL,cAAc8F,eAAiB,4BAI5CpR,EAAK85B,eAAel2B,UAAUsB,YAAclF,EAAK85B,eAQjD95B,EAAK85B,eAAel2B,UAAUoH,OAAS,SAAS3C,GAE5CA,EAAM4B,kBAENlK,KAAK8Q,QAAQM,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,GAEpCpR,KAAK8Q,QAAQI,YAAc,EAE3BlR,KAAKuL,cAAcsF,iBAAmB5Q,EAAKI,WAAWC,OACtDN,KAAK8Q,QAAQC,yBAA2B9Q,EAAK+Q,iBAAiB/Q,EAAKI,WAAWC,QAE1E4C,UAAUmS,YAAcrV,KAAKyC,KAAKw3B,eAClCj6B,KAAK8Q,QAAQ6E,UAAY,QACzB3V,KAAK8Q,QAAQgf,SAGb9vB,KAAK8C,oBAED9C,KAAK0C,YAEL1C,KAAK8Q,QAAQwE,UAAU,EAAG,EAAGtV,KAAKmH,MAAOnH,KAAKoH,SAI9CpH,KAAK8Q,QAAQ6E,UAAYrN,EAAMuR,sBAC/B7Z,KAAK8Q,QAAQ2F,SAAS,EAAG,EAAGzW,KAAKmH,MAAQnH,KAAKoH,UAItDpH,KAAKgwB,oBAAoB1nB,GAGtBA,EAAM2Q,cAGD3Q,EAAMknB,0BAENlnB,EAAMknB,yBAA0B,EAChClnB,EAAM4Q,mBAAmBuW,UAAUzvB,SAW/CC,EAAK85B,eAAel2B,UAAUqI,QAAU,SAASguB,GAEnB,mBAAfA,KAA8BA,GAAa,GAElDA,GAAcl6B,KAAKyC,KAAK4F,QAExBrI,KAAKyC,KAAK4F,OAAOuE,YAAY5M,KAAKyC,MAGtCzC,KAAKyC,KAAO,KACZzC,KAAK8Q,QAAU,KACf9Q,KAAKiP,YAAc,KACnBjP,KAAKuL,cAAgB,MAWzBtL,EAAK85B,eAAel2B,UAAUiI,OAAS,SAAS3E,EAAOC,GAEnDpH,KAAKmH,MAAQA,EAAQnH,KAAK6C,WAC1B7C,KAAKoH,OAASA,EAASpH,KAAK6C,WAE5B7C,KAAKyC,KAAK0E,MAAQnH,KAAKmH,MACvBnH,KAAKyC,KAAK2E,OAASpH,KAAKoH,OAEpBpH,KAAK+C,aACL/C,KAAKyC,KAAK2Q,MAAMjM,MAAQnH,KAAKmH,MAAQnH,KAAK6C,WAAa,KACvD7C,KAAKyC,KAAK2Q,MAAMhM,OAASpH,KAAKoH,OAASpH,KAAK6C,WAAa,OAYjE5C,EAAK85B,eAAel2B,UAAUmsB,oBAAsB,SAASC,EAAenf,GAExE9Q,KAAKuL,cAAcuF,QAAUA,GAAW9Q,KAAK8Q,QAC7C9Q,KAAKuL,cAAc1I,WAAa7C,KAAK6C,WACrCotB,EAAcrkB,cAAc5L,KAAKuL,gBASrCtL,EAAK85B,eAAel2B,UAAUgrB,cAAgB,WAEtC5uB,EAAK+Q,mBAEL/Q,EAAK+Q,oBAEF/Q,EAAK2b,6BAEJ3b,EAAK+Q,iBAAiB/Q,EAAKI,WAAWC,QAAY,cAClDL,EAAK+Q,iBAAiB/Q,EAAKI,WAAWE,KAAY,UAClDN,EAAK+Q,iBAAiB/Q,EAAKI,WAAWG,UAAY,WAClDP,EAAK+Q,iBAAiB/Q,EAAKI,WAAWI,QAAY,SAClDR,EAAK+Q,iBAAiB/Q,EAAKI,WAAWK,SAAY,UAClDT,EAAK+Q,iBAAiB/Q,EAAKI,WAAWM,QAAY,SAClDV,EAAK+Q,iBAAiB/Q,EAAKI,WAAWO,SAAY,UAClDX,EAAK+Q,iBAAiB/Q,EAAKI,WAAWQ,aAAe,cACrDZ,EAAK+Q,iBAAiB/Q,EAAKI,WAAWS,YAAc,aACpDb,EAAK+Q,iBAAiB/Q,EAAKI,WAAWU,YAAc,aACpDd,EAAK+Q,iBAAiB/Q,EAAKI,WAAWW,YAAc,aACpDf,EAAK+Q,iBAAiB/Q,EAAKI,WAAWY,YAAc,aACpDhB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWa,WAAa,YACnDjB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWc,KAAa,MACnDlB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWe,YAAc,aACpDnB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWgB,OAAc,QACpDpB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWiB,YAAc,eAKpDrB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWC,QAAY,cAClDL,EAAK+Q,iBAAiB/Q,EAAKI,WAAWE,KAAY,UAClDN,EAAK+Q,iBAAiB/Q,EAAKI,WAAWG,UAAY,cAClDP,EAAK+Q,iBAAiB/Q,EAAKI,WAAWI,QAAY,cAClDR,EAAK+Q,iBAAiB/Q,EAAKI,WAAWK,SAAY,cAClDT,EAAK+Q,iBAAiB/Q,EAAKI,WAAWM,QAAY,cAClDV,EAAK+Q,iBAAiB/Q,EAAKI,WAAWO,SAAY,cAClDX,EAAK+Q,iBAAiB/Q,EAAKI,WAAWQ,aAAe,cACrDZ,EAAK+Q,iBAAiB/Q,EAAKI,WAAWS,YAAc,cACpDb,EAAK+Q,iBAAiB/Q,EAAKI,WAAWU,YAAc,cACpDd,EAAK+Q,iBAAiB/Q,EAAKI,WAAWW,YAAc,cACpDf,EAAK+Q,iBAAiB/Q,EAAKI,WAAWY,YAAc,cACpDhB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWa,WAAa,cACnDjB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWc,KAAa,cACnDlB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWe,YAAc,cACpDnB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWgB,OAAc,cACpDpB,EAAK+Q,iBAAiB/Q,EAAKI,WAAWiB,YAAc,iBAgBhErB,EAAKw4B,eAAiB,aAYtBx4B,EAAKw4B,eAAenS,eAAiB,SAASC,EAAUzV,GAKpD,IAAK,GAHDvI,GAAage,EAAShe,WACtB6d,EAAQ,GAEHjiB,EAAI,EAAGA,EAAIoiB,EAAS6B,aAAa/jB,OAAQF,IAClD,CACI,GAAIyS,GAAO2P,EAAS6B,aAAajkB,GAC7BskB,EAAQ7R,EAAK6R,KAMjB,IAJA3X,EAAQyE,YAAc6Q,EAAQ,KAAO,SAA6B,EAAjBxP,EAAKoW,WAAexY,SAAS,KAAKoF,OAAO,IAE1F9I,EAAQkE,UAAY4B,EAAK5B,UAEtB4B,EAAK3T,OAAShD,EAAKsoB,SAASC,KAC/B,CACI1X,EAAQqpB,WAER,IAAIv2B,GAAS6kB,EAAM7kB,MAEnBkN,GAAQspB,OAAOx2B,EAAO,GAAIA,EAAO,GAEjC,KAAK,GAAIiB,GAAE,EAAGA,EAAIjB,EAAOS,OAAO,EAAGQ,IAE/BiM,EAAQupB,OAAOz2B,EAAW,EAAJiB,GAAQjB,EAAW,EAAJiB,EAAQ,GAG9C4jB,GAAMhkB,QAELqM,EAAQupB,OAAOz2B,EAAO,GAAIA,EAAO,IAIlCA,EAAO,KAAOA,EAAOA,EAAOS,OAAO,IAAMT,EAAO,KAAOA,EAAOA,EAAOS,OAAO,IAE3EyM,EAAQwpB,YAGT1jB,EAAK9C,OAEJhD,EAAQI,YAAc0F,EAAK8S,UAAYnhB,EACvCuI,EAAQ6E,UAAYyQ,EAAQ,KAAO,SAA6B,EAAjBxP,EAAK6S,WAAejV,SAAS,KAAKoF,OAAO,IACxF9I,EAAQgD,QAET8C,EAAK5B,YAEJlE,EAAQI,YAAc0F,EAAKqW,UAAY1kB,EACvCuI,EAAQkD,cAGX,IAAG4C,EAAK3T,OAAShD,EAAKsoB,SAASQ,MAG7BnS,EAAK6S,WAAgC,IAAnB7S,EAAK6S,aAEtB3Y,EAAQI,YAAc0F,EAAK8S,UAAYnhB,EACvCuI,EAAQ6E,UAAYyQ,EAAQ,KAAO,SAA6B,EAAjBxP,EAAK6S,WAAejV,SAAS,KAAKoF,OAAO,IACxF9I,EAAQ2F,SAASgS,EAAMlkB,EAAGkkB,EAAMjkB,EAAGikB,EAAMthB,MAAOshB,EAAMrhB,SAGvDwP,EAAK5B,YAEJlE,EAAQI,YAAc0F,EAAKqW,UAAY1kB,EACvCuI,EAAQypB,WAAW9R,EAAMlkB,EAAGkkB,EAAMjkB,EAAGikB,EAAMthB,MAAOshB,EAAMrhB,aAG3D,IAAGwP,EAAK3T,OAAShD,EAAKsoB,SAASU,KAGhCnY,EAAQqpB,YACRrpB,EAAQ0pB,IAAI/R,EAAMlkB,EAAGkkB,EAAMjkB,EAAGikB,EAAMhhB,OAAO,EAAE,EAAEvF,KAAKC,IACpD2O,EAAQwpB,YAEL1jB,EAAK9C,OAEJhD,EAAQI,YAAc0F,EAAK8S,UAAYnhB,EACvCuI,EAAQ6E,UAAYyQ,EAAQ,KAAO,SAA6B,EAAjBxP,EAAK6S,WAAejV,SAAS,KAAKoF,OAAO,IACxF9I,EAAQgD,QAET8C,EAAK5B,YAEJlE,EAAQI,YAAc0F,EAAKqW,UAAY1kB,EACvCuI,EAAQkD,cAGX,IAAG4C,EAAK3T,OAAShD,EAAKsoB,SAASW,KACpC,CAGI,GAAI7D,GAAkB,EAAdoD,EAAMthB,MACVszB,EAAmB,EAAfhS,EAAMrhB,OAEV7C,EAAIkkB,EAAMlkB,EAAI8gB,EAAE,EAChB7gB,EAAIikB,EAAMjkB,EAAIi2B,EAAE,CAEpB3pB,GAAQqpB,WAER,IAAIO,GAAQ,SACRC,EAAMtV,EAAI,EAAKqV,EACfE,EAAMH,EAAI,EAAKC,EACfG,EAAKt2B,EAAI8gB,EACTyV,EAAKt2B,EAAIi2B,EACTM,EAAKx2B,EAAI8gB,EAAI,EACb2V,EAAKx2B,EAAIi2B,EAAI,CAEjB3pB,GAAQspB,OAAO71B,EAAGy2B,GAClBlqB,EAAQmqB,cAAc12B,EAAGy2B,EAAKJ,EAAIG,EAAKJ,EAAIn2B,EAAGu2B,EAAIv2B,GAClDsM,EAAQmqB,cAAcF,EAAKJ,EAAIn2B,EAAGq2B,EAAIG,EAAKJ,EAAIC,EAAIG,GACnDlqB,EAAQmqB,cAAcJ,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACpDhqB,EAAQmqB,cAAcF,EAAKJ,EAAIG,EAAIv2B,EAAGy2B,EAAKJ,EAAIr2B,EAAGy2B,GAElDlqB,EAAQwpB,YAEL1jB,EAAK9C,OAEJhD,EAAQI,YAAc0F,EAAK8S,UAAYnhB,EACvCuI,EAAQ6E,UAAYyQ,EAAQ,KAAO,SAA6B,EAAjBxP,EAAK6S,WAAejV,SAAS,KAAKoF,OAAO,IACxF9I,EAAQgD,QAET8C,EAAK5B,YAEJlE,EAAQI,YAAc0F,EAAKqW,UAAY1kB,EACvCuI,EAAQkD,cAGX,IAAI4C,EAAK3T,OAAShD,EAAKsoB,SAASa,KACrC,CACI,GAAI8R,GAAKzS,EAAMlkB,EACX42B,EAAK1S,EAAMjkB,EACX2C,EAAQshB,EAAMthB,MACdC,EAASqhB,EAAMrhB,OACfK,EAASghB,EAAMhhB,OAEf2zB,EAAYl5B,KAAK23B,IAAI1yB,EAAOC,GAAU,EAAI,CAC9CK,GAASA,EAAS2zB,EAAYA,EAAY3zB,EAE1CqJ,EAAQqpB,YACRrpB,EAAQspB,OAAOc,EAAIC,EAAK1zB,GACxBqJ,EAAQupB,OAAOa,EAAIC,EAAK/zB,EAASK,GACjCqJ,EAAQuqB,iBAAiBH,EAAIC,EAAK/zB,EAAQ8zB,EAAKzzB,EAAQ0zB,EAAK/zB,GAC5D0J,EAAQupB,OAAOa,EAAK/zB,EAAQM,EAAQ0zB,EAAK/zB,GACzC0J,EAAQuqB,iBAAiBH,EAAK/zB,EAAOg0B,EAAK/zB,EAAQ8zB,EAAK/zB,EAAOg0B,EAAK/zB,EAASK,GAC5EqJ,EAAQupB,OAAOa,EAAK/zB,EAAOg0B,EAAK1zB,GAChCqJ,EAAQuqB,iBAAiBH,EAAK/zB,EAAOg0B,EAAID,EAAK/zB,EAAQM,EAAQ0zB,GAC9DrqB,EAAQupB,OAAOa,EAAKzzB,EAAQ0zB,GAC5BrqB,EAAQuqB,iBAAiBH,EAAIC,EAAID,EAAIC,EAAK1zB,GAC1CqJ,EAAQwpB,aAEL1jB,EAAK6S,WAAgC,IAAnB7S,EAAK6S,aAEtB3Y,EAAQI,YAAc0F,EAAK8S,UAAYnhB,EACvCuI,EAAQ6E,UAAYyQ,EAAQ,KAAO,SAA6B,EAAjBxP,EAAK6S,WAAejV,SAAS,KAAKoF,OAAO,IACxF9I,EAAQgD,QAGT8C,EAAK5B,YAEJlE,EAAQI,YAAc0F,EAAKqW,UAAY1kB,EACvCuI,EAAQkD,aAexB/T,EAAKw4B,eAAeC,mBAAqB,SAASnS,EAAUzV,GAExD,GAAIwqB,GAAM/U,EAAS6B,aAAa/jB,MAEhC,IAAW,IAARi3B,EAAH,CAEGA,EAAM,IAELA,EAAM,EACN53B,OAAOH,QAAQC,IAAI,8FAGvB,KAAK,GAAIW,GAAI,EAAO,EAAJA,EAAOA,IACvB,CACI,GAAIyS,GAAO2P,EAAS6B,aAAajkB,GAC7BskB,EAAQ7R,EAAK6R,KAEjB,IAAG7R,EAAK3T,OAAShD,EAAKsoB,SAASC,KAC/B,CACI1X,EAAQqpB,WAER,IAAIv2B,GAAS6kB,EAAM7kB,MAEnBkN,GAAQspB,OAAOx2B,EAAO,GAAIA,EAAO,GAEjC,KAAK,GAAIiB,GAAE,EAAGA,EAAIjB,EAAOS,OAAO,EAAGQ,IAE/BiM,EAAQupB,OAAOz2B,EAAW,EAAJiB,GAAQjB,EAAW,EAAJiB,EAAQ,GAI9CjB,GAAO,KAAOA,EAAOA,EAAOS,OAAO,IAAMT,EAAO,KAAOA,EAAOA,EAAOS,OAAO,IAE3EyM,EAAQwpB,gBAIX,IAAG1jB,EAAK3T,OAAShD,EAAKsoB,SAASQ,KAEhCjY,EAAQqpB,YACRrpB,EAAQyqB,KAAK9S,EAAMlkB,EAAGkkB,EAAMjkB,EAAGikB,EAAMthB,MAAOshB,EAAMrhB,QAClD0J,EAAQwpB,gBAEP,IAAG1jB,EAAK3T,OAAShD,EAAKsoB,SAASU,KAGhCnY,EAAQqpB,YACRrpB,EAAQ0pB,IAAI/R,EAAMlkB,EAAGkkB,EAAMjkB,EAAGikB,EAAMhhB,OAAO,EAAE,EAAEvF,KAAKC,IACpD2O,EAAQwpB,gBAEP,IAAG1jB,EAAK3T,OAAShD,EAAKsoB,SAASW,KACpC,CAII,GAAI7D,GAAkB,EAAdoD,EAAMthB,MACVszB,EAAmB,EAAfhS,EAAMrhB,OAEV7C,EAAIkkB,EAAMlkB,EAAI8gB,EAAE,EAChB7gB,EAAIikB,EAAMjkB,EAAIi2B,EAAE,CAEpB3pB,GAAQqpB,WAER,IAAIO,GAAQ,SACRC,EAAMtV,EAAI,EAAKqV,EACfE,EAAMH,EAAI,EAAKC,EACfG,EAAKt2B,EAAI8gB,EACTyV,EAAKt2B,EAAIi2B,EACTM,EAAKx2B,EAAI8gB,EAAI,EACb2V,EAAKx2B,EAAIi2B,EAAI,CAEjB3pB,GAAQspB,OAAO71B,EAAGy2B,GAClBlqB,EAAQmqB,cAAc12B,EAAGy2B,EAAKJ,EAAIG,EAAKJ,EAAIn2B,EAAGu2B,EAAIv2B,GAClDsM,EAAQmqB,cAAcF,EAAKJ,EAAIn2B,EAAGq2B,EAAIG,EAAKJ,EAAIC,EAAIG,GACnDlqB,EAAQmqB,cAAcJ,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACpDhqB,EAAQmqB,cAAcF,EAAKJ,EAAIG,EAAIv2B,EAAGy2B,EAAKJ,EAAIr2B,EAAGy2B,GAClDlqB,EAAQwpB,gBAEP,IAAI1jB,EAAK3T,OAAShD,EAAKsoB,SAASa,KACrC,CAEI,GAAIoS,GAAM/S,EAAM7kB,OACZs3B,EAAKM,EAAI,GACTL,EAAKK,EAAI,GACTr0B,EAAQq0B,EAAI,GACZp0B,EAASo0B,EAAI,GACb/zB,EAAS+zB,EAAI,GAEbJ,EAAYl5B,KAAK23B,IAAI1yB,EAAOC,GAAU,EAAI,CAC9CK,GAASA,EAAS2zB,EAAYA,EAAY3zB,EAE1CqJ,EAAQqpB,YACRrpB,EAAQspB,OAAOc,EAAIC,EAAK1zB,GACxBqJ,EAAQupB,OAAOa,EAAIC,EAAK/zB,EAASK,GACjCqJ,EAAQuqB,iBAAiBH,EAAIC,EAAK/zB,EAAQ8zB,EAAKzzB,EAAQ0zB,EAAK/zB,GAC5D0J,EAAQupB,OAAOa,EAAK/zB,EAAQM,EAAQ0zB,EAAK/zB,GACzC0J,EAAQuqB,iBAAiBH,EAAK/zB,EAAOg0B,EAAK/zB,EAAQ8zB,EAAK/zB,EAAOg0B,EAAK/zB,EAASK,GAC5EqJ,EAAQupB,OAAOa,EAAK/zB,EAAOg0B,EAAK1zB,GAChCqJ,EAAQuqB,iBAAiBH,EAAK/zB,EAAOg0B,EAAID,EAAK/zB,EAAQM,EAAQ0zB,GAC9DrqB,EAAQupB,OAAOa,EAAKzzB,EAAQ0zB,GAC5BrqB,EAAQuqB,iBAAiBH,EAAIC,EAAID,EAAIC,EAAK1zB,GAC1CqJ,EAAQwpB,gBAmBpBr6B,EAAKw7B,MAAQ,SAAS5vB,GAElB5L,EAAKkM,uBAAuBpI,KAAM/D,MASlCA,KAAK6L,QAAUA,EAGf7L,KAAK+zB,IAAM,GAAI9zB,GAAK2B,cAAc,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,IAErC5B,KAAKi0B,UAAY,GAAIh0B,GAAK2B,cAAc,EAAG,EACH,IAAK,EACL,IAAK,IACL,EAAG,MAE3C5B,KAAK07B,OAAS,GAAIz7B,GAAK2B,cAAc,EAAG,EAAG,EAAG,IAE9C5B,KAAKqnB,QAAU,GAAIpnB,GAAK4B,aAAa,EAAG,EAAG,EAAG,IAQ9C7B,KAAKwJ,OAAQ,EASbxJ,KAAKwP,UAAYvP,EAAKI,WAAWC,OAQjCN,KAAKw2B,QAAU,GAMnBv2B,EAAKw7B,MAAM53B,UAAYsF,OAAOkD,OAAOpM,EAAKkM,uBAAuBtI,WACjE5D,EAAKw7B,MAAM53B,UAAUsB,YAAclF,EAAKw7B,MAExCx7B,EAAKw7B,MAAM53B,UAAU8H,aAAe,SAASJ,IAGrCvL,KAAKiI,SAAWjI,KAAKgI,OAAS,IAGlCuD,EAAcqD,YAAYI,OAGtBhP,KAAK27B,eAAc37B,KAAK47B,WAAWrwB,GAEvCA,EAAcoH,cAAcC,UAAUrH,EAAcoH,cAAc6f,aAElExyB,KAAK67B,aAAatwB,GAIlBA,EAAcqD,YAAYQ,UAK9BnP,EAAKw7B,MAAM53B,UAAU+3B,WAAa,SAASrwB,GAGvC,GAAIE,GAAKF,EAAcE,EAEvBzL,MAAK27B,cAAgBlwB,EAAG2hB,eACxBptB,KAAK87B,aAAerwB,EAAG2hB,eACvBptB,KAAK+7B,UAAYtwB,EAAG2hB,eACpBptB,KAAKg8B,aAAevwB,EAAG2hB,eAEvB3hB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK27B,eACpClwB,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAKi0B,UAAWxoB,EAAGooB,cAElDpoB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK+7B,WACpCtwB,EAAG6hB,WAAW7hB,EAAGkc,aAAe3nB,KAAK+zB,IAAKtoB,EAAG8hB,aAE7C9hB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAKg8B,cACpCvwB,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAK07B,OAAQjwB,EAAG8hB,aAE/C9hB,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAK87B,cAC5CrwB,EAAG6hB,WAAW7hB,EAAGsc,qBAAsB/nB,KAAKqnB,QAAS5b,EAAG8hB,cAG5DttB,EAAKw7B,MAAM53B,UAAUg4B,aAAe,SAAStwB,GAEzC,GAAIE,GAAKF,EAAcE,GACnBgb,EAAalb,EAAckb,WAC3BC,EAASnb,EAAcmb,OACvBjX,EAASlE,EAAcoH,cAAc6f,WAKzCjnB,GAAckjB,iBAAiByB,aAAalwB,KAAKwP,WAIjD/D,EAAG6X,iBAAiB7T,EAAOsW,mBAAmB,EAAO/lB,KAAK0I,eAAe7C,SAAQ,IACjF4F,EAAG8b,UAAU9X,EAAO2S,iBAAkBqE,EAAWliB,GAAIkiB,EAAWjiB,GAChEiH,EAAG8b,UAAU9X,EAAO4S,cAAeqE,EAAOniB,GAAImiB,EAAOliB,GACrDiH,EAAGgc,UAAUhY,EAAOzH,MAAOhI,KAAKuI,YAE5BvI,KAAKwJ,OAgCLxJ,KAAKwJ,OAAQ,EACbiC,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK27B,eACpClwB,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAKi0B,UAAWxoB,EAAG8hB,aAClD9hB,EAAGoc,oBAAoBpY,EAAO8S,gBAAiB,EAAG9W,EAAGqc,OAAO,EAAO,EAAG,GAGtErc,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK+7B,WACpCtwB,EAAG6hB,WAAW7hB,EAAGkc,aAAc3nB,KAAK+zB,IAAKtoB,EAAG8hB,aAC5C9hB,EAAGoc,oBAAoBpY,EAAOgT,cAAe,EAAGhX,EAAGqc,OAAO,EAAO,EAAG,GAEpErc,EAAG+X,cAAc/X,EAAGwpB,UAGjBj1B,KAAK6L,QAAQ6D,YAAY4V,OAAO7Z,EAAGvF,IAElCqF,EAAcX,SAASqL,cAAcjW,KAAK6L,QAAQ6D,aAIlDjE,EAAGgY,YAAYhY,EAAGiY,WAAY1jB,KAAK6L,QAAQ6D,YAAYiU,YAAYlY,EAAGvF,KAI1EuF,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAK87B,cAC5CrwB,EAAG6hB,WAAW7hB,EAAGsc,qBAAsB/nB,KAAKqnB,QAAS5b,EAAG8hB,eArDxD9hB,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK27B,eACpClwB,EAAG0pB,cAAc1pB,EAAGkc,aAAc,EAAG3nB,KAAKi0B,WAC1CxoB,EAAGoc,oBAAoBpY,EAAO8S,gBAAiB,EAAG9W,EAAGqc,OAAO,EAAO,EAAG,GAGtErc,EAAGic,WAAWjc,EAAGkc,aAAc3nB,KAAK+7B,WACpCtwB,EAAGoc,oBAAoBpY,EAAOgT,cAAe,EAAGhX,EAAGqc,OAAO,EAAO,EAAG,GAEpErc,EAAG+X,cAAc/X,EAAGwpB,UAGjBj1B,KAAK6L,QAAQ6D,YAAY4V,OAAO7Z,EAAGvF,IAElCqF,EAAcX,SAASqL,cAAcjW,KAAK6L,QAAQ6D,aAKlDjE,EAAGgY,YAAYhY,EAAGiY,WAAY1jB,KAAK6L,QAAQ6D,YAAYiU,YAAYlY,EAAGvF,KAI1EuF,EAAGic,WAAWjc,EAAGsc,qBAAsB/nB,KAAK87B,eAqChDrwB,EAAGyb,aAAazb,EAAGwc,eAAgBjoB,KAAKqnB,QAAQhjB,OAAQoH,EAAG2b,eAAgB;EAO/EnnB,EAAKw7B,MAAM53B,UAAU+H,cAAgB,SAASL,GAE1C,GAAIuF,GAAUvF,EAAcuF,QAExBgC,EAAY9S,KAAK0I,cAEjB6C,GAAc4F,YAEdL,EAAQM,aAAa0B,EAAUzN,EAAGyN,EAAUxN,EAAGwN,EAAUvN,EAAGuN,EAAUtN,EAAkB,EAAfsN,EAAUrN,GAAuB,EAAfqN,EAAUpN,IAIrGoL,EAAQM,aAAa0B,EAAUzN,EAAGyN,EAAUxN,EAAGwN,EAAUvN,EAAGuN,EAAUtN,EAAGsN,EAAUrN,GAAIqN,EAAUpN,GAGrG,IAAIu2B,GAAQj8B,KAERi0B,EAAYgI,EAAMhI,UAClBF,EAAMkI,EAAMlI,IAEZ1vB,EAAS4vB,EAAU5vB,OAAO,CAC9BrE,MAAKmxB,OAEL,KAAK,GAAIhtB,GAAI,EAAOE,EAAO,EAAXF,EAAcA,IAC9B,CAEI,GAAIwI,GAAU,EAAFxI,EAERiwB,EAAKH,EAAUtnB,GAAUtF,EAAK4sB,EAAUtnB,EAAM,GAAI2D,EAAK2jB,EAAUtnB,EAAM,GACvE0nB,EAAKJ,EAAUtnB,EAAM,GAAIrF,EAAK2sB,EAAUtnB,EAAM,GAAI4D,EAAK0jB,EAAUtnB,EAAM,EAE3E,IAAG3M,KAAKw2B,QAAU,EAClB,CACI,GAAI0F,IAAW9H,EAAK/sB,EAAKiJ,GAAI,EACzB6rB,GAAW9H,EAAK/sB,EAAKiJ,GAAI,EAEzB6rB,EAAQhI,EAAK8H,EACbG,EAAQhI,EAAK8H,EAEbtP,EAAO3qB,KAAKgrB,KAAMkP,EAAQA,EAAQC,EAAQA,EAC9CjI,GAAK8H,EAAWE,EAAQvP,GAASA,EAAO,GACxCwH,EAAK8H,EAAWE,EAAQxP,GAASA,EAAO,GAIxCuP,EAAQ/0B,EAAK60B,EACbG,EAAQ/0B,EAAK60B,EAEbtP,EAAO3qB,KAAKgrB,KAAMkP,EAAQA,EAAQC,EAAQA,GAC1Ch1B,EAAK60B,EAAWE,EAAQvP,GAASA,EAAO,GACxCvlB,EAAK60B,EAAWE,EAAQxP,GAASA,EAAO,GAExCuP,EAAQ9rB,EAAK4rB,EACbG,EAAQ9rB,EAAK4rB,EAEbtP,EAAO3qB,KAAKgrB,KAAMkP,EAAQA,EAAQC,EAAQA,GAC1C/rB,EAAK4rB,EAAWE,EAAQvP,GAASA,EAAO,GACxCtc,EAAK4rB,EAAWE,EAAQxP,GAASA,EAAO,GAG5C,GAAIyP,GAAKvI,EAAIpnB,GAASsvB,EAAMpwB,QAAQ1E,MAASo1B,EAAKxI,EAAIpnB,EAAM,GAAKsvB,EAAMpwB,QAAQ1E,MAAOq1B,EAAKzI,EAAIpnB,EAAM,GAAIsvB,EAAMpwB,QAAQ1E,MACnHs1B,EAAK1I,EAAIpnB,EAAM,GAAIsvB,EAAMpwB,QAAQzE,OAAQs1B,EAAK3I,EAAIpnB,EAAM,GAAKsvB,EAAMpwB,QAAQzE,OAAQu1B,EAAK5I,EAAIpnB,EAAM,GAAIsvB,EAAMpwB,QAAQzE,MAExH0J,GAAQynB,OACRznB,EAAQqpB,YAGRrpB,EAAQspB,OAAOhG,EAAIC,GACnBvjB,EAAQupB,OAAOhzB,EAAIC,GACnBwJ,EAAQupB,OAAO/pB,EAAIC,GAEnBO,EAAQwpB,YAERxpB,EAAQ6nB,MAGR,IAAIiE,GAAQN,EAAGI,EAAKD,EAAGD,EAAKD,EAAGI,EAAKD,EAAGF,EAAKC,EAAGF,EAAKD,EAAGK,EACnDE,EAASzI,EAAGsI,EAAKD,EAAGnsB,EAAKjJ,EAAGs1B,EAAKD,EAAGpsB,EAAKmsB,EAAGp1B,EAAK+sB,EAAGuI,EACpDG,EAASR,EAAGj1B,EAAK+sB,EAAGoI,EAAKD,EAAGjsB,EAAKjJ,EAAGm1B,EAAKpI,EAAGmI,EAAKD,EAAGhsB,EACpDysB,EAAST,EAAGI,EAAGpsB,EAAKmsB,EAAGp1B,EAAGm1B,EAAKpI,EAAGmI,EAAGI,EAAKvI,EAAGsI,EAAGF,EAAKC,EAAGF,EAAGjsB,EAAKgsB,EAAGj1B,EAAGs1B,EACtEK,EAAS3I,EAAGqI,EAAKD,EAAGlsB,EAAKjJ,EAAGq1B,EAAKD,EAAGnsB,EAAKksB,EAAGn1B,EAAK+sB,EAAGsI,EACpDM,EAASX,EAAGh1B,EAAK+sB,EAAGmI,EAAKD,EAAGhsB,EAAKjJ,EAAGk1B,EAAKnI,EAAGkI,EAAKD,EAAG/rB,EACpD2sB,EAASZ,EAAGI,EAAGnsB,EAAKksB,EAAGn1B,EAAGk1B,EAAKnI,EAAGkI,EAAGI,EAAKtI,EAAGqI,EAAGF,EAAKC,EAAGF,EAAGhsB,EAAK+rB,EAAGh1B,EAAGq1B,CAE1E7rB,GAAQgC,UAAU+pB,EAASD,EAAOI,EAASJ,EACvBE,EAASF,EAAOK,EAASL,EACzBG,EAASH,EAAOM,EAASN,GAE7C9rB,EAAQc,UAAUqqB,EAAMpwB,QAAQ6D,YAAYmC,OAAQ,EAAG,GACvDf,EAAQ8nB,YAYhB34B,EAAKw7B,MAAM53B,UAAUs5B,gBAAkB,SAASlB,GAE5C,GAAInrB,GAAU9Q,KAAK8Q,QACfmjB,EAAYgI,EAAMhI,UAElB5vB,EAAS4vB,EAAU5vB,OAAO,CAC9BrE,MAAKmxB,QAELrgB,EAAQqpB,WACR,KAAK,GAAIh2B,GAAE,EAAOE,EAAO,EAAXF,EAAcA,IAC5B,CAEI,GAAIwI,GAAU,EAAFxI,EAERiwB,EAAKH,EAAUtnB,GAAUtF,EAAK4sB,EAAUtnB,EAAM,GAAI2D,EAAK2jB,EAAUtnB,EAAM,GACvE0nB,EAAKJ,EAAUtnB,EAAM,GAAIrF,EAAK2sB,EAAUtnB,EAAM,GAAI4D,EAAK0jB,EAAUtnB,EAAM,EAE3EmE,GAAQspB,OAAOhG,EAAIC,GACnBvjB,EAAQupB,OAAOhzB,EAAIC,GACnBwJ,EAAQupB,OAAO/pB,EAAIC,GAGvBO,EAAQ6E,UAAY,UACpB7E,EAAQgD,OACRhD,EAAQwpB,aAyBZr6B,EAAKw7B,MAAM53B,UAAU+L,gBAAkB,WAEnC5P,KAAKo9B,aAAc,GAgBvBn9B,EAAKo9B,KAAO,SAASxxB,EAASjI,GAE1B3D,EAAKw7B,MAAM13B,KAAM/D,KAAM6L,GACvB7L,KAAK4D,OAASA,EAEd5D,KAAKi0B,UAAY,GAAIh0B,GAAK2B,aAA6B,EAAhBgC,EAAOS,QAC9CrE,KAAK+zB,IAAM,GAAI9zB,GAAK2B,aAA6B,EAAhBgC,EAAOS,QACxCrE,KAAK07B,OAAS,GAAIz7B,GAAK2B,aAA6B,EAAhBgC,EAAOS,QAC3CrE,KAAKqnB,QAAU,GAAIpnB,GAAK4B,YAA4B,EAAhB+B,EAAOS,QAG3CrE,KAAKg6B,WAKT/5B,EAAKo9B,KAAKx5B,UAAYsF,OAAOkD,OAAQpM,EAAKw7B,MAAM53B,WAChD5D,EAAKo9B,KAAKx5B,UAAUsB,YAAclF,EAAKo9B,KAOvCp9B,EAAKo9B,KAAKx5B,UAAUm2B,QAAU,WAE1B,GAAIp2B,GAAS5D,KAAK4D,MAClB,MAAGA,EAAOS,OAAS,GAAnB,CAEA,GAAI0vB,GAAM/zB,KAAK+zB,IAEXvI,EAAY5nB,EAAO,GACnByjB,EAAUrnB,KAAKqnB,QACfqU,EAAS17B,KAAK07B,MAElB17B,MAAKmxB,OAAO,GAEZ4C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EAET2H,EAAO,GAAK,EACZA,EAAO,GAAK,EAEZrU,EAAQ,GAAK,EACbA,EAAQ,GAAK,CAKb,KAAK,GAFDiW,GAAO3wB,EAAO4wB,EADdC,EAAQ55B,EAAOS,OAGVF,EAAI,EAAOq5B,EAAJr5B,EAAWA,IAEvBm5B,EAAQ15B,EAAOO,GACfwI,EAAY,EAAJxI,EAERo5B,EAASp5B,GAAKq5B,EAAM,GAEjBr5B,EAAE,GAED4vB,EAAIpnB,GAAS4wB,EACbxJ,EAAIpnB,EAAM,GAAK,EAEfonB,EAAIpnB,EAAM,GAAK4wB,EACfxJ,EAAIpnB,EAAM,GAAK,IAIfonB,EAAIpnB,GAAS4wB,EACbxJ,EAAIpnB,EAAM,GAAK,EAEfonB,EAAIpnB,EAAM,GAAK4wB,EACfxJ,EAAIpnB,EAAM,GAAK,GAGnBA,EAAY,EAAJxI,EACRu3B,EAAO/uB,GAAS,EAChB+uB,EAAO/uB,EAAM,GAAK,EAElBA,EAAY,EAAJxI,EACRkjB,EAAQ1a,GAASA,EACjB0a,EAAQ1a,EAAQ,GAAKA,EAAQ,EAE7B6e,EAAY8R,IAUpBr9B,EAAKo9B,KAAKx5B,UAAUqG,gBAAkB,WAGlC,GAAItG,GAAS5D,KAAK4D,MAClB,MAAGA,EAAOS,OAAS,GAAnB,CAEA,GACIo5B,GADAjS,EAAY5nB,EAAO,GAEnB85B,GAAQn5B,EAAE,EAAGC,EAAE,EAEnBxE,MAAKmxB,OAAO,EAMZ,KAAK,GAFDmM,GAAO3wB,EAAOgxB,EAAOC,EAAYC,EAFjC5J,EAAYj0B,KAAKi0B,UACjBuJ,EAAQ55B,EAAOS,OAGVF,EAAI,EAAOq5B,EAAJr5B,EAAWA,IAEvBm5B,EAAQ15B,EAAOO,GACfwI,EAAY,EAAJxI,EAIJs5B,EAFDt5B,EAAIP,EAAOS,OAAO,EAELT,EAAOO,EAAE,GAITm5B,EAGhBI,EAAKl5B,IAAMi5B,EAAUl5B,EAAIinB,EAAUjnB,GACnCm5B,EAAKn5B,EAAIk5B,EAAUj5B,EAAIgnB,EAAUhnB,EAEjCm5B,EAAgC,IAAvB,EAAKx5B,GAAKq5B,EAAM,IAEtBG,EAAQ,IAAGA,EAAQ,GAEtBC,EAAa17B,KAAKgrB,KAAKwQ,EAAKn5B,EAAIm5B,EAAKn5B,EAAIm5B,EAAKl5B,EAAIk5B,EAAKl5B,GACvDq5B,EAAM79B,KAAK6L,QAAQzE,OAAS,EAC5Bs2B,EAAKn5B,GAAKq5B,EACVF,EAAKl5B,GAAKo5B,EAEVF,EAAKn5B,GAAKs5B,EACVH,EAAKl5B,GAAKq5B,EAEV5J,EAAUtnB,GAAS2wB,EAAM/4B,EAAIm5B,EAAKn5B,EAClC0vB,EAAUtnB,EAAM,GAAK2wB,EAAM94B,EAAIk5B,EAAKl5B,EACpCyvB,EAAUtnB,EAAM,GAAK2wB,EAAM/4B,EAAIm5B,EAAKn5B,EACpC0vB,EAAUtnB,EAAM,GAAK2wB,EAAM94B,EAAIk5B,EAAKl5B,EAEpCgnB,EAAY8R,CAGhBr9B,GAAKkM,uBAAuBtI,UAAUqG,gBAAgBnG,KAAM/D,QAQhEC,EAAKo9B,KAAKx5B,UAAUmM,WAAa,SAASnE,GAGtC7L,KAAK6L,QAAUA,GAkBnB5L,EAAK69B,aAAe,SAASjyB,EAAS1E,EAAOC,GAEzCnH,EAAKyL,OAAO3H,KAAM/D,KAAM6L,GAQxB7L,KAAKsM,OAASnF,GAAS,IAQvBnH,KAAKuM,QAAUnF,GAAU,IAQzBpH,KAAK+0B,UAAY,GAAI90B,GAAKgE,MAAM,EAAE,GAQlCjE,KAAK20B,gBAAkB,GAAI10B,GAAKgE,MAAM,EAAE,GAQxCjE,KAAK00B,aAAe,GAAIz0B,GAAKgE,MAAM,EAAE,GASrCjE,KAAKoI,YAAa,EASlBpI,KAAKuP,KAAO,SASZvP,KAAKwP,UAAYvP,EAAKI,WAAWC,QAOrCL,EAAK69B,aAAaj6B,UAAYsF,OAAOkD,OAAOpM,EAAKyL,OAAO7H,WACxD5D,EAAK69B,aAAaj6B,UAAUsB,YAAclF,EAAK69B,aAS/C30B,OAAOC,eAAenJ,EAAK69B,aAAaj6B,UAAW,SAC/CwF,IAAK,WACD,MAAOrJ,MAAKsM,QAEhBhD,IAAK,SAASC,GAEVvJ,KAAKsM,OAAS/C,KAUtBJ,OAAOC,eAAenJ,EAAK69B,aAAaj6B,UAAW,UAC/CwF,IAAK,WACD,MAAQrJ,MAAKuM,SAEjBjD,IAAK,SAASC,GACVvJ,KAAKuM,QAAUhD,KAIvBtJ,EAAK69B,aAAaj6B,UAAUmM,WAAa,SAASnE,GAE1C7L,KAAK6L,UAAYA,IAErB7L,KAAK6L,QAAUA,EAEf7L,KAAK+9B,gBAAiB,EAEtB/9B,KAAKiQ,WAAa,WAUtBhQ,EAAK69B,aAAaj6B,UAAU8H,aAAe,SAASJ,GAEhD,GAAIvL,KAAKiI,WAAY,GAAwB,IAAfjI,KAAKgI,MAAnC,CACA,GAAI7D,GAAEU,CAkCN,KAhCI7E,KAAKgJ,QAELuC,EAAcqD,YAAYI,OAC1BzD,EAAc0D,YAAYC,SAASlP,KAAKmP,KAAM5D,GAC9CA,EAAcqD,YAAYQ,SAG1BpP,KAAK2J,WAEL4B,EAAcqD,YAAYC,QAC1BtD,EAAcuD,cAAcC,WAAW/O,KAAK8J,gBAK3C9J,KAAKw0B,eAAiBx0B,KAAK+9B,gBAE5B/9B,KAAKg+B,uBAAsB,GAEvBh+B,KAAKw0B,eAAiBx0B,KAAKw0B,cAAcyJ,cAGzCh+B,EAAKi+B,mBAAmBl+B,KAAKw0B,cAAc9kB,YAAanE,EAAcE,IACtEzL,KAAKw0B,cAAcyJ,aAAc,IAMrC1yB,EAAcqD,YAAY0lB,mBAAmBt0B,MAG5CmE,EAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAElCnE,KAAKoM,SAASjI,GAAGwH,aAAaJ,EAGlCA,GAAcqD,YAAYI,OAEtBhP,KAAK2J,UAAU4B,EAAcuD,cAAcQ,YAC3CtP,KAAKgJ,OAAOuC,EAAc0D,YAAYI,QAAQrP,KAAKgJ,MAAOuC,GAE9DA,EAAcqD,YAAYQ,UAU9BnP,EAAK69B,aAAaj6B,UAAU+H,cAAgB,SAASL,GAEjD,GAAIvL,KAAKiI,WAAY,GAAwB,IAAfjI,KAAKgI,MAAnC,CAEA,GAAI8I,GAAUvF,EAAcuF,OAExB9Q,MAAKgJ,OAELuC,EAAc0D,YAAYC,SAASlP,KAAKgJ,MAAO8H,GAGnDA,EAAQI,YAAclR,KAAKuI,UAE3B,IAEIpE,GAAEU,EAFFiO,EAAY9S,KAAK0I,eAIjB7F,EAAa0I,EAAc1I,UAS/B,IAPAiO,EAAQM,aAAa0B,EAAUzN,EAAIxC,EACdiQ,EAAUvN,EAAI1C,EACdiQ,EAAUxN,EAAIzC,EACdiQ,EAAUtN,EAAI3C,EACdiQ,EAAUrN,GAAK5C,EACfiQ,EAAUpN,GAAK7C,IAE/B7C,KAAKm+B,eAAkBn+B,KAAK+9B,eACjC,CAGI,GAFA/9B,KAAKg+B,uBAAsB,IAEvBh+B,KAAKw0B,cAML,MAJAx0B,MAAKm+B,cAAgBrtB,EAAQstB,cAAcp+B,KAAKw0B,cAAc9kB,YAAYmC,OAAQ,UAStF7R,KAAKwP,YAAcjE,EAAcsF,mBAEjCtF,EAAcsF,iBAAmB7Q,KAAKwP,UACtCsB,EAAQC,yBAA2B9Q,EAAK+Q,iBAAiBzF,EAAcsF,kBAG3E,IAAI6jB,GAAe10B,KAAK00B,aACpBK,EAAY/0B,KAAK+0B,SAwBrB,KAtBAL,EAAanwB,GAAKvE,KAAKw0B,cAAc9kB,YAAYvI,MACjDutB,EAAalwB,GAAKxE,KAAKw0B,cAAc9kB,YAAYtI,OAGjD0J,EAAQ1K,MAAM2uB,EAAUxwB,EAAEwwB,EAAUvwB,GACpCsM,EAAQ3K,UAAUuuB,EAAanwB,EAAKvE,KAAKiM,OAAO1H,GAAKvE,KAAKsM,OAASooB,EAAalwB,EAAKxE,KAAKiM,OAAOzH,GAAKxE,KAAKuM,SAE3GuE,EAAQ6E,UAAY3V,KAAKm+B,cAEzBrtB,EAAQ2F,UAAUie,EAAanwB,GACdmwB,EAAalwB,EACdxE,KAAKsM,OAASyoB,EAAUxwB,EACxBvE,KAAKuM,QAAUwoB,EAAUvwB,GAEzCsM,EAAQ1K,MAAM,EAAI2uB,EAAUxwB,EAAG,EAAIwwB,EAAUvwB,GAC7CsM,EAAQ3K,WAAWuuB,EAAanwB,EAAKvE,KAAKiM,OAAO1H,EAAIvE,KAAKsM,QAAUooB,EAAalwB,EAAKxE,KAAKiM,OAAOzH,EAAIxE,KAAKuM,SAEvGvM,KAAKgJ,OAELuC,EAAc0D,YAAYI,QAAQ9D,EAAcuF,SAG/C3M,EAAE,EAAEU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAElCnE,KAAKoM,SAASjI,GAAGyH,cAAcL,KAWvCtL,EAAK69B,aAAaj6B,UAAU0G,UAAY,WAEpC,GAAIpD,GAAQnH,KAAKsM,OACblF,EAASpH,KAAKuM,QAEd2D,EAAK/I,GAAS,EAAEnH,KAAKiM,OAAO1H,GAC5B4L,EAAKhJ,GAASnH,KAAKiM,OAAO1H,EAE1B6L,EAAKhJ,GAAU,EAAEpH,KAAKiM,OAAOzH,GAC7B6L,EAAKjJ,GAAUpH,KAAKiM,OAAOzH,EAE3BkE,EAAiB1I,KAAK0I,eAEtBrD,EAAIqD,EAAerD,EACnBC,EAAIoD,EAAepD,EACnBC,EAAImD,EAAenD,EACnBC,EAAIkD,EAAelD,EACnBC,EAAKiD,EAAejD,GACpBC,EAAKgD,EAAehD,GAEpB2B,EAAKhC,EAAI8K,EAAK5K,EAAI8K,EAAK5K,EACvB6B,EAAK9B,EAAI6K,EAAK/K,EAAI6K,EAAKzK,EAEvB4K,EAAKjL,EAAI6K,EAAK3K,EAAI8K,EAAK5K,EACvB8K,EAAK/K,EAAI6K,EAAK/K,EAAI4K,EAAKxK,EAEvB8K,EAAKnL,EAAI6K,EAAK3K,EAAI6K,EAAK3K,EACvBgL,EAAKjL,EAAI4K,EAAK9K,EAAI4K,EAAKxK,EAEvBgL,EAAMrL,EAAI8K,EAAK5K,EAAI6K,EAAK3K,EACxBkL,EAAMnL,EAAI4K,EAAK9K,EAAI6K,EAAKzK,EAExB8I,GAAQF,IACRG,GAAQH,IAERD,EAAOC,IACPC,EAAOD,GAEXD,GAAYA,EAALhH,EAAYA,EAAKgH,EACxBA,EAAYA,EAALiC,EAAYA,EAAKjC,EACxBA,EAAYA,EAALmC,EAAYA,EAAKnC,EACxBA,EAAYA,EAALqC,EAAYA,EAAKrC,EAExBE,EAAYA,EAALjH,EAAYA,EAAKiH,EACxBA,EAAYA,EAALgC,EAAYA,EAAKhC,EACxBA,EAAYA,EAALkC,EAAYA,EAAKlC,EACxBA,EAAYA,EAALoC,EAAYA,EAAKpC,EAExBC,EAAOnH,EAAKmH,EAAOnH,EAAKmH,EACxBA,EAAO8B,EAAK9B,EAAO8B,EAAK9B,EACxBA,EAAOgC,EAAKhC,EAAOgC,EAAKhC,EACxBA,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EAExBC,EAAOnH,EAAKmH,EAAOnH,EAAKmH,EACxBA,EAAO8B,EAAK9B,EAAO8B,EAAK9B,EACxBA,EAAOgC,EAAKhC,EAAOgC,EAAKhC,EACxBA,EAAOkC,EAAKlC,EAAOkC,EAAKlC,CAExB,IAAI5D,GAAS7K,KAAK8I,OAWlB,OATA+B,GAAOtG,EAAI8J,EACXxD,EAAO1D,MAAQqH,EAAOH,EAEtBxD,EAAOrG,EAAI+J,EACX1D,EAAOzD,OAASqH,EAAOF,EAGvBvO,KAAK+I,eAAiB8B,EAEfA,GAYX5K,EAAK69B,aAAaj6B,UAAU+L,gBAAkB,aAY9C3P,EAAK69B,aAAaj6B,UAAUm6B,sBAAwB,SAASK,GAEzD,GAAKr+B,KAAK6L,QAAQ6D,YAAYC,UAA9B,CAEA,GAEI2uB,GAAaC,EAFb1yB,EAAU7L,KAAKw+B,iBAAmBx+B,KAAK6L,QACvCkE,EAAQlE,EAAQkE,MAIhB0uB,EAAU1uB,EAAM5I,QAAU0E,EAAQ6D,YAAYvI,OAAS4I,EAAM3I,SAAWyE,EAAQ6D,YAAYtI,OAE5Fs3B,GAAqB,CAoBzB,IAlBKL,GAYDC,EAAcr+B,EAAK4b,kBAAkB9L,EAAM5I,OAC3Co3B,EAAet+B,EAAK4b,kBAAkB9L,EAAM3I,SAExC2I,EAAM5I,QAAUm3B,GAAevuB,EAAM3I,SAAWm3B,KAAcG,GAAqB,IAbnFD,IAEAH,EAAcvuB,EAAM5I,MACpBo3B,EAAexuB,EAAM3I,OAErBs3B,GAAqB,GAWzBA,EACJ,CACI,GAAIC,EAEA3+B,MAAKw0B,eAAiBx0B,KAAKw0B,cAAcoK,UAEzCD,EAAe3+B,KAAKw0B,cAAcmK,aAClCA,EAAa7yB,OAAOwyB,EAAaC,GACjCv+B,KAAKw0B,cAAc9kB,YAAYvI,MAAQm3B,EACvCt+B,KAAKw0B,cAAc9kB,YAAYtI,OAASm3B,EACxCv+B,KAAKw0B,cAAcyJ,aAAc,IAIjCU,EAAe,GAAI1+B,GAAKo4B,aAAaiG,EAAaC,GAElDv+B,KAAKw0B,cAAgBv0B,EAAKmS,QAAQqB,WAAWkrB,EAAatrB,QAC1DrT,KAAKw0B,cAAcmK,aAAeA,EAClC3+B,KAAKw0B,cAAcoK,UAAW,GAGlCD,EAAa7tB,QAAQc,UAAU/F,EAAQ6D,YAAYmC,OAC5BhG,EAAQ+E,KAAKrM,EACbsH,EAAQ+E,KAAKpM,EACbqH,EAAQ+E,KAAKzJ,MACb0E,EAAQ+E,KAAKxJ,OACb,EACA,EACAk3B,EACAC,GAEvBv+B,KAAK20B,gBAAgBpwB,EAAIwL,EAAM5I,MAAQm3B,EACvCt+B,KAAK20B,gBAAgBnwB,EAAIuL,EAAM3I,OAASm3B,MAKpCv+B,MAAKw0B,eAAiBx0B,KAAKw0B,cAAcoK,UAIzC5+B,KAAKw0B,cAActoB,SAAQ,GAG/BlM,KAAK20B,gBAAgBpwB,EAAI,EACzBvE,KAAK20B,gBAAgBnwB,EAAI,EACzBxE,KAAKw0B,cAAgB3oB,CAGzB7L,MAAK+9B,gBAAiB,EAEtB/9B,KAAKw+B,gBAAkBx+B,KAAK6L,QAC5B7L,KAAK6L,QAAU7L,KAAKw0B,cAEpBx0B,KAAKw0B,cAAc9kB,YAAY2gB,WAAY,IAO/CpwB,EAAK4+B,oBAEL5+B,EAAK6+B,4BAA8B,EAWnC7+B,EAAK8+B,YAAc,SAASltB,EAAQlH,GAoFhC,GA5EA3K,KAAK6C,WAAa,EASlB7C,KAAKmH,MAAQ,IASbnH,KAAKoH,OAAS,IASdpH,KAAK2K,UAAYA,GAAa1K,EAAKsB,WAAWC,QAS9CxB,KAAK2P,WAAY,EAQjB3P,KAAK6R,OAASA,EAEd7R,KAAK2B,KAAO1B,EAAK0B,OASjB3B,KAAKkuB,oBAAqB,EAS1BluB,KAAK2jB,eAUL3jB,KAAKslB,SAAU,GAAM,GAAM,GAAM,GAE7BzT,EAAJ,CAEA,IAAI7R,KAAK6R,OAAOmtB,UAAYh/B,KAAK6R,OAAO2B,aAAexT,KAAK6R,OAAO1K,OAASnH,KAAK6R,OAAOzK,OAEpFpH,KAAK2P,WAAY,EACjB3P,KAAKmH,MAAQnH,KAAK6R,OAAOotB,cAAgBj/B,KAAK6R,OAAO1K,MACrDnH,KAAKoH,OAASpH,KAAK6R,OAAOqtB,eAAiBl/B,KAAK6R,OAAOzK,OACvDpH,KAAKwJ,YAGT,CACI,GAAI21B,GAAQn/B,IAEZA,MAAK6R,OAAOutB,OAAS,WAEjBD,EAAMxvB,WAAY,EAClBwvB,EAAMh4B,MAAQg4B,EAAMttB,OAAOotB,cAAgBE,EAAMttB,OAAO1K,MACxDg4B,EAAM/3B,OAAS+3B,EAAMttB,OAAOqtB,eAAiBC,EAAMttB,OAAOzK,OAE1D+3B,EAAM31B,QAGN21B,EAAM7iB,eAAiBrZ,KAAM,SAAUqa,QAAS6hB,KAGpDn/B,KAAK6R,OAAOwtB,QAAU,WAClBF,EAAM7iB,eAAiBrZ,KAAM,QAASqa,QAAS6hB,KAQvDn/B,KAAKs/B,SAAW,KAOhBt/B,KAAKqwB,WAAY,IAIrBpwB,EAAK8+B,YAAYl7B,UAAUsB,YAAclF,EAAK8+B,YAE9C9+B,EAAK8b,YAAYE,MAAMhc,EAAK8+B,YAAYl7B,WAOxC5D,EAAK8+B,YAAYl7B,UAAUqI,QAAU,WAE9BlM,KAAKs/B,gBAEGr/B,GAAK4+B,iBAAiB7+B,KAAKs/B,gBAC3Br/B,GAAK+R,aAAahS,KAAKs/B,UAC9Bt/B,KAAKs/B,SAAW,KACXp8B,UAAUmS,aAAYrV,KAAK6R,OAAO0O,IAAM,KAExCvgB,KAAK6R,QAAU7R,KAAK6R,OAAO0tB,eAEzBt/B,GAAK4+B,iBAAiB7+B,KAAK6R,OAAO0tB,SAE7Cv/B,KAAK6R,OAAS,KAEd7R,KAAKw/B,iBASTv/B,EAAK8+B,YAAYl7B,UAAU47B,kBAAoB,SAASC,GAEpD1/B,KAAK2P,WAAY,EACjB3P,KAAK6R,OAAO0O,IAAM,KAClBvgB,KAAK6R,OAAO0O,IAAMmf,GAQtBz/B,EAAK8+B,YAAYl7B,UAAU2F,MAAQ,WAE/B,IAAK,GAAIrF,GAAI,EAAGA,EAAInE,KAAK2jB,YAAYtf,OAAQF,IAEzCnE,KAAKslB,OAAOnhB,IAAK,GAUzBlE,EAAK8+B,YAAYl7B,UAAU27B,cAAgB,WAEvCx/B,KAAKwJ,OAGL,KAAK,GAAIrF,GAAInE,KAAK2jB,YAAYtf,OAAS,EAAGF,GAAK,EAAGA,IAClD,CACI,GAAIw7B,GAAY3/B,KAAK2jB,YAAYxf,GAC7BsH,EAAKxL,EAAKwtB,WAAWtpB,EAEtBsH,IAAMk0B,GAELl0B,EAAG2sB,cAAcuH,GAKzB3/B,KAAK2jB,YAAYtf,OAAS,EAE1BrE,KAAKwJ,SAcTvJ,EAAK8+B,YAAY9sB,UAAY,SAASqtB,EAAUntB,EAAaxH,GAEzD,GAAI+E,GAAczP,EAAK4+B,iBAAiBS,EAIxC,IAFmB7xB,SAAhB0E,GAA2D,KAA9BmtB,EAASj8B,QAAQ,WAAiB8O,GAAc,IAE5EzC,EACJ,CAGI,GAAIkwB,GAAQ,GAAIzG,MACZhnB,KAEAytB,EAAMC,YAAc,IAGxBD,EAAMrf,IAAM+e,EACZ5vB,EAAc,GAAIzP,GAAK8+B,YAAYa,EAAOj1B,GAC1C+E,EAAY4vB,SAAWA,EACvBr/B,EAAK4+B,iBAAiBS,GAAY5vB,EAGiB,KAA/C4vB,EAASj8B,QAAQpD,EAAKqC,cAAgB,OAEtCoN,EAAY7M,WAAa,GAIjC,MAAO6M,IAYXzP,EAAK8+B,YAAYtrB,WAAa,SAASJ,EAAQ1I,GAEvC0I,EAAOksB,UAEPlsB,EAAOksB,QAAU,UAAYt/B,EAAK6/B,0BAGtC,IAAIpwB,GAAczP,EAAK4+B,iBAAiBxrB,EAAOksB,QAQ/C,OANI7vB,KAEAA,EAAc,GAAIzP,GAAK8+B,YAAY1rB,EAAQ1I,GAC3C1K,EAAK4+B,iBAAiBxrB,EAAOksB,SAAW7vB,GAGrCA,GAOXzP,EAAK+R,gBACL/R,EAAK8/B,cAEL9/B,EAAK6/B,wBAA0B,EAc/B7/B,EAAKmS,QAAU,SAAS1C,EAAaK,EAAOa,EAAMW,GAQ9CvR,KAAKggC,SAAU,EAEVjwB,IAED/P,KAAKggC,SAAU,EACfjwB,EAAQ,GAAI9P,GAAKiH,UAAU,EAAE,EAAE,EAAE,IAGjCwI,YAAuBzP,GAAKmS,UAE5B1C,EAAcA,EAAYA,aAS9B1P,KAAK0P,YAAcA,EAQnB1P,KAAK+P,MAAQA,EAQb/P,KAAKuR,KAAOA,EAQZvR,KAAKiR,OAAQ,EAQbjR,KAAKigC,gBAAiB,EAStBjgC,KAAKg0B,KAAO,KAQZh0B,KAAKmH,MAAQ,EAQbnH,KAAKoH,OAAS,EASdpH,KAAK4Q,KAAOA,GAAQ,GAAI3Q,GAAKiH,UAAU,EAAG,EAAG,EAAG,GAE5CwI,EAAYC,WAER3P,KAAKggC,UAASjwB,EAAQ,GAAI9P,GAAKiH,UAAU,EAAG,EAAGwI,EAAYvI,MAAOuI,EAAYtI,SAClFpH,KAAKkgC,SAASnwB,IAIdL,EAAYkN,iBAAiB,SAAU5c,KAAKmgC,oBAAoBrwB,KAAK9P,QAI7EC,EAAKmS,QAAQvO,UAAUsB,YAAclF,EAAKmS,QAC1CnS,EAAK8b,YAAYE,MAAMhc,EAAKmS,QAAQvO,WAQpC5D,EAAKmS,QAAQvO,UAAUs8B,oBAAsB,WAEzC,GAAIzwB,GAAc1P,KAAK0P,WACvBA,GAAYwN,oBAAoB,SAAUld,KAAKogC,UAE3CpgC,KAAKggC,UAAShgC,KAAK+P,MAAQ,GAAI9P,GAAKiH,UAAU,EAAG,EAAGwI,EAAYvI,MAAOuI,EAAYtI,SAEvFpH,KAAKkgC,SAASlgC,KAAK+P,OAEnB/P,KAAKsc,eAAiBrZ,KAAM,SAAUqa,QAAStd,QASnDC,EAAKmS,QAAQvO,UAAUqI,QAAU,SAASm0B,GAElCA,GAAargC,KAAK0P,YAAYxD,UAElClM,KAAKiR,OAAQ,GASjBhR,EAAKmS,QAAQvO,UAAUq8B,SAAW,SAASnwB,GAavC,GAXA/P,KAAKggC,SAAU,EAEfhgC,KAAK+P,MAAQA,EACb/P,KAAKmH,MAAQ4I,EAAM5I,MACnBnH,KAAKoH,OAAS2I,EAAM3I,OAEpBpH,KAAK4Q,KAAKrM,EAAIwL,EAAMxL,EACpBvE,KAAK4Q,KAAKpM,EAAIuL,EAAMvL,EACpBxE,KAAK4Q,KAAKzJ,MAAQ4I,EAAM5I,MACxBnH,KAAK4Q,KAAKxJ,OAAS2I,EAAM3I,QAEpBpH,KAAKuR,OAASxB,EAAMxL,EAAIwL,EAAM5I,MAAQnH,KAAK0P,YAAYvI,OAAS4I,EAAMvL,EAAIuL,EAAM3I,OAASpH,KAAK0P,YAAYtI,QAE3G,KAAM,IAAI0F,OAAM,wEAA0E9M,KAG9FA,MAAKiR,MAAQlB,GAASA,EAAM5I,OAAS4I,EAAM3I,QAAUpH,KAAK0P,YAAYmC,QAAU7R,KAAK0P,YAAYC,UAE7F3P,KAAKuR,OAELvR,KAAKmH,MAAQnH,KAAKuR,KAAKpK,MACvBnH,KAAKoH,OAASpH,KAAKuR,KAAKnK,OACxBpH,KAAK+P,MAAM5I,MAAQnH,KAAKuR,KAAKpK,MAC7BnH,KAAK+P,MAAM3I,OAASpH,KAAKuR,KAAKnK,QAG9BpH,KAAKiR,OAAOjR,KAAKsgC,cAUzBrgC,EAAKmS,QAAQvO,UAAUy8B,WAAa,WAE5BtgC,KAAKg0B,OAAKh0B,KAAKg0B,KAAO,GAAI/zB,GAAKw0B,WAEnC,IAAI1kB,GAAQ/P,KAAK4Q,KACb2vB,EAAKvgC,KAAK0P,YAAYvI,MACtBq5B,EAAKxgC,KAAK0P,YAAYtI,MAE1BpH,MAAKg0B,KAAKI,GAAKrkB,EAAMxL,EAAIg8B,EACzBvgC,KAAKg0B,KAAKK,GAAKtkB,EAAMvL,EAAIg8B,EAEzBxgC,KAAKg0B,KAAK3sB,IAAM0I,EAAMxL,EAAIwL,EAAM5I,OAASo5B,EACzCvgC,KAAKg0B,KAAK1sB,GAAKyI,EAAMvL,EAAIg8B,EAEzBxgC,KAAKg0B,KAAK1jB,IAAMP,EAAMxL,EAAIwL,EAAM5I,OAASo5B,EACzCvgC,KAAKg0B,KAAKzjB,IAAMR,EAAMvL,EAAIuL,EAAM3I,QAAUo5B,EAE1CxgC,KAAKg0B,KAAKxjB,GAAKT,EAAMxL,EAAIg8B,EACzBvgC,KAAKg0B,KAAKvjB,IAAMV,EAAMvL,EAAIuL,EAAM3I,QAAUo5B,GAc9CvgC,EAAKmS,QAAQH,UAAY,SAASqtB,EAAUntB,EAAaxH,GAErD,GAAIkB,GAAU5L,EAAK+R,aAAastB,EAQhC,OANIzzB,KAEAA,EAAU,GAAI5L,GAAKmS,QAAQnS,EAAK8+B,YAAY9sB,UAAUqtB,EAAUntB,EAAaxH,IAC7E1K,EAAK+R,aAAastB,GAAYzzB,GAG3BA,GAYX5L,EAAKmS,QAAQN,UAAY,SAASC,GAE9B,GAAIlG,GAAU5L,EAAK+R,aAAaD,EAChC,KAAIlG,EAAS,KAAM,IAAIiB,OAAM,gBAAkBiF,EAAU,yCACzD,OAAOlG,IAYX5L,EAAKmS,QAAQqB,WAAa,SAASJ,EAAQ1I,GAEvC,GAAI+E,GAAczP,EAAK8+B,YAAYtrB,WAAWJ,EAAQ1I,EAEtD,OAAO,IAAI1K,GAAKmS,QAAS1C,IAY7BzP,EAAKmS,QAAQquB,kBAAoB,SAAS50B,EAAS3F,GAE/CjG,EAAK+R,aAAa9L,GAAM2F,GAW5B5L,EAAKmS,QAAQsuB,uBAAyB,SAASx6B,GAE3C,GAAI2F,GAAU5L,EAAK+R,aAAa9L,EAGhC,cAFOjG,GAAK+R,aAAa9L,SAClBjG,GAAK4+B,iBAAiB34B,GACtB2F,GAGX5L,EAAKw0B,WAAa,WAEdz0B,KAAKo0B,GAAK,EACVp0B,KAAKq0B,GAAK,EAEVr0B,KAAKqH,GAAK,EACVrH,KAAKsH,GAAK,EAEVtH,KAAKsQ,GAAK,EACVtQ,KAAKuQ,GAAK,EAEVvQ,KAAKwQ,GAAK,EACVxQ,KAAKyQ,GAAK,GAGdxQ,EAAKmS,QAAQuuB,aAAe,GAAI1gC,GAAKmS,QAAQ,GAAInS,GAAK8+B,aAqCtD9+B,EAAK8K,cAAgB,SAAS5D,EAAOC,EAAQwD,EAAUD,EAAW9H,GAwE9D,GAhEA7C,KAAKmH,MAAQA,GAAS,IAQtBnH,KAAKoH,OAASA,GAAU,IAQxBpH,KAAK6C,WAAaA,GAAc,EAQhC7C,KAAK+P,MAAQ,GAAI9P,GAAKiH,UAAU,EAAG,EAAGlH,KAAKmH,MAAQnH,KAAK6C,WAAY7C,KAAKoH,OAASpH,KAAK6C,YASvF7C,KAAK4Q,KAAO,GAAI3Q,GAAKiH,UAAU,EAAG,EAAGlH,KAAKmH,MAAQnH,KAAK6C,WAAY7C,KAAKoH,OAASpH,KAAK6C,YAQtF7C,KAAK0P,YAAc,GAAIzP,GAAK8+B,YAC5B/+B,KAAK0P,YAAYvI,MAAQnH,KAAKmH,MAAQnH,KAAK6C,WAC3C7C,KAAK0P,YAAYtI,OAASpH,KAAKoH,OAASpH,KAAK6C,WAC7C7C,KAAK0P,YAAYiU,eACjB3jB,KAAK0P,YAAY7M,WAAa7C,KAAK6C,WAEnC7C,KAAK0P,YAAY/E,UAAYA,GAAa1K,EAAKsB,WAAWC,QAE1DxB,KAAK0P,YAAYC,WAAY,EAE7B1P,EAAKmS,QAAQrO,KAAK/D,KACdA,KAAK0P,YACL,GAAIzP,GAAKiH,UAAU,EAAG,EAAGlH,KAAKmH,MAAOnH,KAAKoH,SAS9CpH,KAAK4K,SAAWA,GAAY3K,EAAK2tB,gBAE9B5tB,KAAK4K,SAAS3H,OAAShD,EAAKC,eAC/B,CACI,GAAIuL,GAAKzL,KAAK4K,SAASa,EACvBzL,MAAK0P,YAAY4V,OAAO7Z,EAAGvF,KAAM,EAEjClG,KAAK4gC,cAAgB,GAAI3gC,GAAKs2B,cAAc9qB,EAAIzL,KAAKmH,MAAQnH,KAAK6C,WAAY7C,KAAKoH,OAASpH,KAAK6C,WAAY7C,KAAK0P,YAAY/E,WAC9H3K,KAAK0P,YAAYiU,YAAYlY,EAAGvF,IAAOlG,KAAK4gC,cAAc/0B,QAE1D7L,KAAKiL,OAASjL,KAAK6gC,YACnB7gC,KAAKymB,WAAa,GAAIxmB,GAAKgE,MAAiB,GAAXjE,KAAKmH,MAAwB,IAAZnH,KAAKoH,YAIvDpH,MAAKiL,OAASjL,KAAK8gC,aACnB9gC,KAAK4gC,cAAgB,GAAI3gC,GAAKo4B,aAAar4B,KAAKmH,MAAOnH,KAAK6C,WAAY7C,KAAKoH,OAAQpH,KAAK6C,YAC1F7C,KAAK0P,YAAYmC,OAAS7R,KAAK4gC,cAAcvtB,MAOjDrT,MAAKiR,OAAQ,EAEbjR,KAAKsgC,cAGTrgC,EAAK8K,cAAclH,UAAYsF,OAAOkD,OAAOpM,EAAKmS,QAAQvO,WAC1D5D,EAAK8K,cAAclH,UAAUsB,YAAclF,EAAK8K,cAUhD9K,EAAK8K,cAAclH,UAAUiI,OAAS,SAAS3E,EAAOC,EAAQ25B,IAEtD55B,IAAUnH,KAAKmH,OAASC,IAAWpH,KAAKoH,UAE5CpH,KAAKiR,MAAS9J,EAAQ,GAAKC,EAAS,EAEpCpH,KAAKmH,MAAQnH,KAAK+P,MAAM5I,MAAQnH,KAAK4Q,KAAKzJ,MAAQA,EAClDnH,KAAKoH,OAAUpH,KAAK+P,MAAM3I,OAASpH,KAAK4Q,KAAKxJ,OAASA,EAElD25B,IAEA/gC,KAAK0P,YAAYvI,MAAQnH,KAAKmH,MAC9BnH,KAAK0P,YAAYtI,OAASpH,KAAKoH,QAG/BpH,KAAK4K,SAAS3H,OAAShD,EAAKC,iBAE5BF,KAAKymB,WAAWliB,EAAIvE,KAAKmH,MAAQ,EACjCnH,KAAKymB,WAAWjiB,GAAKxE,KAAKoH,OAAS,GAGnCpH,KAAKiR,OAETjR,KAAK4gC,cAAc90B,OAAO9L,KAAKmH,MAAQnH,KAAK6C,WAAY7C,KAAKoH,OAASpH,KAAK6C,cAQ/E5C,EAAK8K,cAAclH,UAAUisB,MAAQ,WAE7B9vB,KAAKiR,QAELjR,KAAK4K,SAAS3H,OAAShD,EAAKC,gBAE5BF,KAAK4K,SAASa,GAAGkkB,gBAAgB3vB,KAAK4K,SAASa,GAAGmkB,YAAa5vB,KAAK4gC,cAAcnK,aAGtFz2B,KAAK4gC,cAAc9Q,UAYvB7vB,EAAK8K,cAAclH,UAAUg9B,YAAc,SAAS5Q,EAAeppB,EAAQipB,GAEvE,GAAI9vB,KAAKiR,MAAT,CAIA,GAAI7G,GAAK6lB,EAAcvnB,cACvB0B,GAAGpD,WACHoD,EAAGjE,UAAU,EAAuB,EAApBnG,KAAKymB,WAAWjiB,GAC7BqC,GAAOuD,EAAGxD,OAAOC,GACpBuD,EAAGhE,MAAM,EAAE,IAGX6pB,EAAc1nB,WAAa,CAK3B,KAAI,GAFA6D,GAAW6jB,EAAc7jB,SAErBjI,EAAE,EAAEU,EAAEuH,EAAS/H,OAAUQ,EAAFV,EAAKA,IAEhCiI,EAASjI,GAAG+F,iBAIhB,IAAIuB,GAAKzL,KAAK4K,SAASa,EAEvBA,GAAGikB,SAAS,EAAG,EAAG1vB,KAAKmH,MAAQnH,KAAK6C,WAAY7C,KAAKoH,OAASpH,KAAK6C,YAEnE4I,EAAGkkB,gBAAgBlkB,EAAGmkB,YAAa5vB,KAAK4gC,cAAcnK,aAEnD3G,GAAM9vB,KAAK4gC,cAAc9Q,QAE5B9vB,KAAK4K,SAASgE,YAAYpF,OAAQ,EAElCxJ,KAAK4K,SAASolB,oBAAoBC,EAAejwB,KAAKymB,WAAYzmB,KAAK4gC,cAAcnK,aAErFz2B,KAAK4K,SAASgE,YAAYpF,OAAQ,IAatCvJ,EAAK8K,cAAclH,UAAUi9B,aAAe,SAAS7Q,EAAeppB,EAAQipB,GAExE,GAAI9vB,KAAKiR,MAAT,CAEA,GAAI7G,GAAK6lB,EAAcvnB,cACvB0B,GAAGpD,WACAH,GAAOuD,EAAGxD,OAAOC,GAGpBopB,EAAc1nB,WAAa,CAK3B,KAAI,GAFA6D,GAAW6jB,EAAc7jB,SAErBjI,EAAI,EAAGU,EAAIuH,EAAS/H,OAAYQ,EAAJV,EAAOA,IAEvCiI,EAASjI,GAAG+F,iBAGb4lB,IAAM9vB,KAAK4gC,cAAc9Q,OAE5B,IAAIhf,GAAU9Q,KAAK4gC,cAAc9vB,QAE7BkwB,EAAiBhhC,KAAK4K,SAAS/H,UAEnC7C,MAAK4K,SAAS/H,WAAa7C,KAAK6C,WAEhC7C,KAAK4K,SAASolB,oBAAoBC,EAAenf,GAEjD9Q,KAAK4K,SAAS/H,WAAam+B,IAS/B/gC,EAAK8K,cAAclH,UAAUo9B,SAAW,WAEpC,GAAIrB,GAAQ,GAAIzG,MAEhB,OADAyG,GAAMrf,IAAMvgB,KAAKkhC,YACVtB,GASX3/B,EAAK8K,cAAclH,UAAUq9B,UAAY,WAErC,MAAOlhC,MAAKmhC,YAAY/H,aAS5Bn5B,EAAK8K,cAAclH,UAAUs9B,UAAY,WAErC,GAAInhC,KAAK4K,SAAS3H,OAAShD,EAAKC,eAChC,CACI,GAAIuL,GAAMzL,KAAK4K,SAASa,GACpBtE,EAAQnH,KAAK4gC,cAAcz5B,MAC3BC,EAASpH,KAAK4gC,cAAcx5B,OAE5Bg6B,EAAc,GAAIC,YAAW,EAAIl6B,EAAQC,EAE7CqE,GAAGkkB,gBAAgBlkB,EAAGmkB,YAAa5vB,KAAK4gC,cAAcnK,aACtDhrB,EAAG61B,WAAW,EAAG,EAAGn6B,EAAOC,EAAQqE,EAAG2Y,KAAM3Y,EAAGmZ,cAAewc,GAC9D31B,EAAGkkB,gBAAgBlkB,EAAGmkB,YAAa,KAEnC,IAAI2R,GAAa,GAAIthC,GAAKo4B,aAAalxB,EAAOC,GAC1Co6B,EAAaD,EAAWzwB,QAAQ6F,aAAa,EAAG,EAAGxP,EAAOC,EAK9D,OAJAo6B,GAAW5qB,KAAKtN,IAAI83B,GAEpBG,EAAWzwB,QAAQ4oB,aAAa8H,EAAY,EAAG,GAExCD,EAAWluB,OAIlB,MAAOrT,MAAK4gC,cAAcvtB,QAIlCpT,EAAK8K,cAAc02B,WAAa,GAAIxhC,GAAKmF,OAczCnF,EAAK0zB,eAAiB,SAAS1S,EAAa2B,GASxC5iB,KAAK4J,QAAU5J,MAOfA,KAAKyzB,WAMLzzB,KAAKwJ,OAAQ,EAMbxJ,KAAKw2B,QAAU,EAOfx2B,KAAK4iB,SAAWA,MAOhB5iB,KAAKihB,YAAcA,OAGvBhhB,EAAK0zB,eAAe9vB,UAAUsB,YAAclF,EAAK0zB,eAOjD1zB,EAAK0zB,eAAe9vB,UAAUshB,aAAe,WAEzC,IAAI,GAAIhhB,GAAE,EAAEU,EAAE7E,KAAKyzB,QAAQpvB,OAAUQ,EAAFV,EAAKA,IAEpCnE,KAAKyzB,QAAQtvB,GAAGqF,OAAQ,GAcL,mBAAZk4B,UACe,mBAAXC,SAA0BA,OAAOD,UACxCA,QAAUC,OAAOD,QAAUzhC,GAE/ByhC,QAAQzhC,KAAOA,GACU,mBAAX2hC,SAA0BA,OAAOC,IAC/CD,OAAO,OAAQ,WAAc,MAAO7hC,GAAKE,KAAOA,MAEhDF,EAAKE,KAAOA,IAEjB8D,KAAK/D,MAqCR,WA65gBA,QAAS8hC,GAAiBC,EAAaC,GAEnChiC,KAAKiiC,aAAeF,EAEpB/hC,KAAKkiC,WAAaF,EAKlBhiC,KAAKmiC,cAAgB,KAp6gBrB,GAAIpiC,GAAOC,KAYXoiC,EAASA,IAEZhiC,QAAS,YACTiiC,SAEGC,KAAM,EACNC,OAAQ,EACRC,MAAO,EACPC,SAAU,EAEVC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,GAAI,EACJC,KAAM,EAENC,OAAQ,EACRC,OAAQ,EACRC,MAAO,EACPC,SAAU,EACVC,KAAM,EACNC,WAAY,EACZC,WAAY,EACZC,MAAO,EACPC,cAAe,EACfC,QAAS,EACTC,aAAc,GACdC,QAAS,GACTC,QAAS,GACTC,WAAY,GACZC,cAAe,GACfC,aAAc,GACdC,QAAS,GACTC,YAAa,GACbC,UAAW,GACXC,QAAS,GACTC,KAAM,GAGN9jC,YACIC,OAAO,EACPC,IAAI,EACJC,SAAS,EACTC,OAAO,EACPC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,YAAY,EACZC,WAAW,EACXC,WAAW,EACXC,WAAW,GACXC,WAAW,GACXC,UAAU,GACVC,IAAI,GACJC,WAAW,GACXC,MAAM,GACNC,WAAW,IAIfC,YACIC,QAAQ,EACRC,OAAO,EACPC,QAAQ,GAQhBzB,MAAKkZ,mBAAqBlZ,KAAKkZ,oBAAsB,aAGrDlZ,KAAKsC,cAAe,EAiBpB6/B,EAAOgC,OAUHC,YAAa,SAASroB,EAAKsoB,GAQvB,IANA,GAAIC,GAAQD,EAAK3vB,MAAM,KACnB6vB,EAAOD,EAAMzrB,MACb2rB,EAAIF,EAAMlgC,OACVF,EAAI,EACJugC,EAAUH,EAAM,GAETE,EAAJtgC,IAAU6X,EAAMA,EAAI0oB,KAEvBA,EAAUH,EAAMpgC,GAChBA,GAGJ,OAAI6X,GAEOA,EAAIwoB,GAIJ,MAafG,YAAa,SAAS3oB,EAAKsoB,EAAM/6B,GAQ7B,IANA,GAAIg7B,GAAQD,EAAK3vB,MAAM,KACnB6vB,EAAOD,EAAMzrB,MACb2rB,EAAIF,EAAMlgC,OACVF,EAAI,EACJugC,EAAUH,EAAM,GAETE,EAAJtgC,IAAU6X,EAAMA,EAAI0oB,KAEvBA,EAAUH,EAAMpgC,GAChBA,GAQJ,OALI6X,KAEAA,EAAIwoB,GAAQj7B,GAGTyS,GAcX4oB,WAAY,SAAUC,GAElB,MADsB,mBAAXA,KAA0BA,EAAS,IACvCA,EAAS,GAAsB,IAAhB3iC,KAAK4iC,UAAkBD,GAWjDE,aAAc,SAAUC,EAASC,GAC7B,MAAQ/iC,MAAK4iC,SAAW,GAAOE,EAAUC,GAW7CC,eAAgB,SAAUt/B,GACtB,MAAOw8B,GAAO+C,WAAWC,gBAAgBx/B,IAa7Cy/B,YAAa,SAAUx+B,EAAQy+B,GAC3B,MAAOlD,GAAO+C,WAAWI,aAAa1+B,EAAQy+B,IAWlDE,QAAS,SAAU5/B,GACf,MAAOw8B,GAAO+C,WAAWK,QAAQ5/B,IAWrC6/B,eAAgB,SAAU3tB,EAAM4tB,GAE5B,GAAIC,GAAI,EACJ5mB,EAAK,CA4BT,OA1BoB,gBAATjH,GAGiB,MAApBA,EAAK8B,OAAO,KAEZ+rB,EAAI/tB,SAASE,EAAM,IAAM,IAIrBiH,EAFc,IAAd2mB,EAEKhiC,OAAOkiC,WAAaD,EAIpBjiC,OAAOmiC,YAAcF,GAK9B5mB,EAAKnH,SAASE,EAAM,IAKxBiH,EAAKjH,EAGFiH,GAcX+mB,IAAK,SAAUC,EAAKzK,EAAKwK,EAAKE,GAE1B,GAAoB,mBAAV,GAAyB,GAAI1K,GAAM,CAC7C,IAAoB,mBAAV,GAAyB,GAAIwK,GAAM,GAC7C,IAAoB,mBAAV,GAAyB,GAAIE,GAAM,CAE7C,IAAIC,GAAS,CAEb,IAAI3K,EAAM,GAAKyK,EAAI1hC,OAEf,OAAQ2hC,GAEJ,IAAK,GACDD,EAAM,GAAIjkC,OAAMw5B,EAAM,EAAIyK,EAAI1hC,QAAQmc,KAAKslB,GAAOC,CAClD,MAEJ,KAAK,GACD,GAAIG,GAAQhkC,KAAKqU,MAAM0vB,EAAS3K,EAAMyK,EAAI1hC,QAAU,GAChD8hC,EAAOF,EAASC,CACpBH,GAAM,GAAIjkC,OAAMqkC,EAAK,GAAG3lB,KAAKslB,GAAOC,EAAM,GAAIjkC,OAAMokC,EAAM,GAAG1lB,KAAKslB,EAClE,MAEJ,SACIC,GAAY,GAAIjkC,OAAMw5B,EAAM,EAAIyK,EAAI1hC,QAAQmc,KAAKslB,GAK7D,MAAOC,IAWXK,cAAe,SAAUpqB,GAMrB,GAAoB,gBAAV,IAAsBA,EAAIqqB,UAAYrqB,IAAQA,EAAItY,OAExD,OAAO,CAOX,KACI,GAAIsY,EAAI7W,iBAAqBmhC,eAAeviC,KAAKiY,EAAI7W,YAAYtB,UAAW,iBAExE,OAAO,EAEb,MAAO8X,GACL,OAAO,EAKX,OAAO,GAUX4qB,OAAQ,WAEJ,GAAI5Y,GAAStQ,EAAMkD,EAAKimB,EAAMC,EAAa/hC,EACvCqF,EAAS/F,UAAU,OACnBG,EAAI,EACJE,EAASL,UAAUK,OACnBqiC,GAAO,CAkBX,KAfsB,iBAAX38B,KAEP28B,EAAO38B,EACPA,EAAS/F,UAAU,OAEnBG,EAAI,GAIJE,IAAWF,IAEX4F,EAAS/J,OACPmE,GAGKE,EAAJF,EAAYA,IAGf,GAAgC,OAA3BwpB,EAAU3pB,UAAUG,IAGrB,IAAKkZ,IAAQsQ,GAETpN,EAAMxW,EAAOsT,GACbmpB,EAAO7Y,EAAQtQ,GAGXtT,IAAWy8B,IAMXE,GAAQF,IAASpE,EAAOgC,MAAMgC,cAAcI,KAAUC,EAAc3kC,MAAM6kC,QAAQH,MAE9EC,GAEAA,GAAc,EACd/hC,EAAQ6b,GAAOze,MAAM6kC,QAAQpmB,GAAOA,MAIpC7b,EAAQ6b,GAAO6hB,EAAOgC,MAAMgC,cAAc7lB,GAAOA,KAIrDxW,EAAOsT,GAAQ+kB,EAAOgC,MAAMmC,OAAOG,EAAMhiC,EAAO8hC,IAIlC/4B,SAAT+4B,IAELz8B,EAAOsT,GAAQmpB,GAO/B,OAAOz8B,IAaXkS,MAAO,SAAU5Q,EAAMu7B,GAEnB,IAAKv7B,GAA0B,gBAAX,GAEhB,MAAOu7B,EAGX,KAAK,GAAIjkB,KAAOtX,GAChB,CACI,GAAIw7B,GAAIx7B,EAAKsX,EAEb,KAAIkkB,EAAEC,aAAcD,EAAEE,UAAtB,CAKA,GAAI9jC,SAAeoI,GAAKsX,EAWhBikB,GAAGjkB,GATNtX,EAAKsX,IAAiB,WAAT1f,QAOF2jC,GAAGjkB,KAAU1f,EAEXm/B,EAAOgC,MAAMnoB,MAAM5Q,EAAKsX,GAAMikB,EAAGjkB,IAIjCyf,EAAOgC,MAAMnoB,MAAM5Q,EAAKsX,GAAM,GAAIkkB,GAAE1hC,aAXxCkG,EAAKsX,IAgBvB,MAAOikB,KAsBfxE,EAAO4E,OAAS,SAAUziC,EAAGC,EAAGyiC,GAE5B1iC,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTyiC,EAAWA,GAAY,EAKvBjnC,KAAKuE,EAAIA,EAKTvE,KAAKwE,EAAIA,EAMTxE,KAAKknC,UAAYD,EAQbjnC,KAAKmnC,QANLF,EAAW,EAMe,GAAXA,EAIA,GAKvB7E,EAAO4E,OAAOnjC,WAEVZ,KAAM,KAONmkC,cAAe,WACX,MAAO,GAAKllC,KAAKC,GAAKnC,KAAKmnC,SAQ/B58B,UAAW,WACP,MAAO,IAAI63B,GAAOl7B,UAAUlH,KAAKuE,EAAIvE,KAAKyH,OAAQzH,KAAKwE,EAAIxE,KAAKyH,OAAsB,EAAdzH,KAAKyH,OAA0B,EAAdzH,KAAKyH,SAWlG4/B,MAAO,SAAU9iC,EAAGC,EAAGyiC,GAOnB,MALAjnC,MAAKuE,EAAIA,EACTvE,KAAKwE,EAAIA,EACTxE,KAAKknC,UAAYD,EACjBjnC,KAAKmnC,QAAqB,GAAXF,EAERjnC,MAUXsnC,SAAU,SAAUz1B,GAEhB,MAAO7R,MAAKqnC,MAAMx1B,EAAOtN,EAAGsN,EAAOrN,EAAGqN,EAAOo1B,WAUjDM,OAAQ,SAAUC,GAMd,MAJAA,GAAKjjC,EAAIvE,KAAKuE,EACdijC,EAAKhjC,EAAIxE,KAAKwE,EACdgjC,EAAKP,SAAWjnC,KAAKknC,UAEdM,GAYXC,SAAU,SAAUD,EAAME,GAEtB,GAAID,GAAWrF,EAAOlgC,KAAKulC,SAASznC,KAAKuE,EAAGvE,KAAKwE,EAAGgjC,EAAKjjC,EAAGijC,EAAKhjC,EACjE,OAAOkjC,GAAQxlC,KAAKwlC,MAAMD,GAAYA,GAU1C/iC,MAAO,SAAUijC,GAWb,MATsB,mBAAXA,IAAqC,OAAXA,EAEjCA,EAAS,GAAIvF,GAAO4E,OAAOhnC,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKinC,UAIhDU,EAAON,MAAMrnC,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKinC,UAG/BU,GAWXhjC,SAAU,SAAUJ,EAAGC,GAEnB,MAAO49B,GAAO4E,OAAOriC,SAAS3E,KAAMuE,EAAGC,IAY3CojC,mBAAoB,SAAUthC,EAAOuhC,EAAWC,GAE5C,MAAO1F,GAAO4E,OAAOY,mBAAmB5nC,KAAMsG,EAAOuhC,EAAWC,IAWpEphB,OAAQ,SAAUpV,EAAIE,GAKlB,MAHAxR,MAAKuE,GAAK+M,EACVtR,KAAKwE,GAAKgN,EAEHxR,MAUX+nC,YAAa,SAAUzK,GACnB,MAAOt9B,MAAK0mB,OAAO4W,EAAM/4B,EAAG+4B,EAAM94B,IAQtCgQ,SAAU,WACN,MAAO,sBAAwBxU,KAAKuE,EAAI,MAAQvE,KAAKwE,EAAI,aAAexE,KAAKinC,SAAW,WAAajnC,KAAKyH,OAAS,QAK3H26B,EAAO4E,OAAOnjC,UAAUsB,YAAci9B,EAAO4E,OAO7C79B,OAAOC,eAAeg5B,EAAO4E,OAAOnjC,UAAW,YAE3CwF,IAAK,WACD,MAAOrJ,MAAKknC,WAGhB59B,IAAK,SAAUC,GAEPA,EAAQ,IAERvJ,KAAKknC,UAAY39B,EACjBvJ,KAAKmnC,QAAkB,GAAR59B,MAW3BJ,OAAOC,eAAeg5B,EAAO4E,OAAOnjC,UAAW,UAE3CwF,IAAK,WACD,MAAOrJ,MAAKmnC,SAGhB79B,IAAK,SAAUC,GAEPA,EAAQ,IAERvJ,KAAKmnC,QAAU59B,EACfvJ,KAAKknC,UAAoB,EAAR39B,MAY7BJ,OAAOC,eAAeg5B,EAAO4E,OAAOnjC,UAAW,QAE3CwF,IAAK,WACD,MAAOrJ,MAAKuE,EAAIvE,KAAKmnC,SAGzB79B,IAAK,SAAUC,GAEPA,EAAQvJ,KAAKuE,GAEbvE,KAAKmnC,QAAU,EACfnnC,KAAKknC,UAAY,GAIjBlnC,KAAKyH,OAASzH,KAAKuE,EAAIgF,KAYnCJ,OAAOC,eAAeg5B,EAAO4E,OAAOnjC,UAAW,SAE3CwF,IAAK,WACD,MAAOrJ,MAAKuE,EAAIvE,KAAKmnC,SAGzB79B,IAAK,SAAUC,GAEPA,EAAQvJ,KAAKuE,GAEbvE,KAAKmnC,QAAU,EACfnnC,KAAKknC,UAAY,GAIjBlnC,KAAKyH,OAAS8B,EAAQvJ,KAAKuE,KAYvC4E,OAAOC,eAAeg5B,EAAO4E,OAAOnjC,UAAW,OAE3CwF,IAAK,WACD,MAAOrJ,MAAKwE,EAAIxE,KAAKmnC,SAGzB79B,IAAK,SAAUC,GAEPA,EAAQvJ,KAAKwE,GAEbxE,KAAKmnC,QAAU,EACfnnC,KAAKknC,UAAY,GAIjBlnC,KAAKyH,OAASzH,KAAKwE,EAAI+E,KAYnCJ,OAAOC,eAAeg5B,EAAO4E,OAAOnjC,UAAW,UAE3CwF,IAAK,WACD,MAAOrJ,MAAKwE,EAAIxE,KAAKmnC,SAGzB79B,IAAK,SAAUC,GAEPA,EAAQvJ,KAAKwE,GAEbxE,KAAKmnC,QAAU,EACfnnC,KAAKknC,UAAY,GAIjBlnC,KAAKyH,OAAS8B,EAAQvJ,KAAKwE,KAavC2E,OAAOC,eAAeg5B,EAAO4E,OAAOnjC,UAAW,QAE3CwF,IAAK,WAED,MAAIrJ,MAAKmnC,QAAU,EAERjlC,KAAKC,GAAKnC,KAAKmnC,QAAUnnC,KAAKmnC,QAI9B,KAanBh+B,OAAOC,eAAeg5B,EAAO4E,OAAOnjC,UAAW,SAE3CwF,IAAK,WACD,MAA2B,KAAnBrJ,KAAKknC,WAGjB59B,IAAK,SAAUC,GAEPA,KAAU,GAEVvJ,KAAKqnC,MAAM,EAAG,EAAG,MAe7BjF,EAAO4E,OAAOriC,SAAW,SAAUU,EAAGd,EAAGC,GAGrC,GAAIa,EAAEoC,OAAS,GAAKlD,GAAKc,EAAE8gC,MAAQ5hC,GAAKc,EAAE6gC,OAAS1hC,GAAKa,EAAE2iC,KAAOxjC,GAAKa,EAAE4iC,OACxE,CACI,GAAI32B,IAAMjM,EAAEd,EAAIA,IAAMc,EAAEd,EAAIA,GACxBiN,GAAMnM,EAAEb,EAAIA,IAAMa,EAAEb,EAAIA,EAE5B,OAAQ8M,GAAKE,GAAQnM,EAAEoC,OAASpC,EAAEoC,OAIlC,OAAO,GAYf26B,EAAO4E,OAAOkB,OAAS,SAAU7iC,EAAGC,GAChC,MAAQD,GAAEd,GAAKe,EAAEf,GAAKc,EAAEb,GAAKc,EAAEd,GAAKa,EAAE4hC,UAAY3hC,EAAE2hC,UAWxD7E,EAAO4E,OAAOmB,WAAa,SAAU9iC,EAAGC,GACpC,MAAQ88B,GAAOlgC,KAAKulC,SAASpiC,EAAEd,EAAGc,EAAEb,EAAGc,EAAEf,EAAGe,EAAEd,IAAOa,EAAEoC,OAASnC,EAAEmC,QAYtE26B,EAAO4E,OAAOY,mBAAqB,SAAUviC,EAAGiB,EAAOuhC,EAAWC,GAa9D,MAXyB,mBAAdD,KAA6BA,GAAY,GACjC,mBAARC,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAE/C4jC,KAAc,IAEdvhC,EAAQ87B,EAAOlgC,KAAKkmC,SAAS9hC,IAGjCwhC,EAAIvjC,EAAIc,EAAEd,EAAIc,EAAEoC,OAASvF,KAAKqE,IAAID,GAClCwhC,EAAItjC,EAAIa,EAAEb,EAAIa,EAAEoC,OAASvF,KAAKsE,IAAIF,GAE3BwhC,GAWX1F,EAAO4E,OAAOqB,oBAAsB,SAAU9iC,EAAGokB,GAE7C,GAAIlL,GAAKvc,KAAKirB,IAAI5nB,EAAEhB,EAAIolB,EAAEplB,EAAIolB,EAAE2e,WAC5BC,EAAQ5e,EAAE2e,UAAY/iC,EAAEkC,MAE5B,IAAIgX,EAAK8pB,EAEL,OAAO,CAGX,IAAI7pB,GAAKxc,KAAKirB,IAAI5nB,EAAEf,EAAImlB,EAAEnlB,EAAImlB,EAAE6e,YAC5BC,EAAQ9e,EAAE6e,WAAajjC,EAAEkC,MAE7B,IAAIiX,EAAK+pB,EAEL,OAAO,CAGX,IAAIhqB,GAAMkL,EAAE2e,WAAa5pB,GAAMiL,EAAE6e,WAE7B,OAAO,CAGX,IAAIE,GAAcjqB,EAAKkL,EAAE2e,UACrBK,EAAcjqB,EAAKiL,EAAE6e,WACrBI,EAAgBF,EAAcA,EAC9BG,EAAgBF,EAAcA,EAC9BG,EAAkBvjC,EAAEkC,OAASlC,EAAEkC,MAEnC,OAAwCqhC,IAAjCF,EAAgBC,GAK3B5oC,KAAK+mC,OAAS5E,EAAO4E,OAmBrB5E,EAAOn+B,MAAQ,SAAUM,EAAGC,GAExBD,EAAIA,GAAK,EACTC,EAAIA,GAAK,EAKTxE,KAAKuE,EAAIA,EAKTvE,KAAKwE,EAAIA,GAIb49B,EAAOn+B,MAAMJ,WASTyjC,SAAU,SAAUz1B,GAEhB,MAAO7R,MAAKqnC,MAAMx1B,EAAOtN,EAAGsN,EAAOrN,IAUvCukC,OAAQ,WAEJ,MAAO/oC,MAAKqnC,MAAMrnC,KAAKwE,EAAGxE,KAAKuE,IAcnC8iC,MAAO,SAAU9iC,EAAGC,GAKhB,MAHAxE,MAAKuE,EAAIA,GAAK,EACdvE,KAAKwE,EAAIA,IAAc,IAANA,EAAWxE,KAAKuE,EAAI,GAE9BvE,MAcXsJ,IAAK,SAAU/E,EAAGC,GAKd,MAHAxE,MAAKuE,EAAIA,GAAK,EACdvE,KAAKwE,EAAIA,IAAc,IAANA,EAAWxE,KAAKuE,EAAI,GAE9BvE,MAYXgpC,IAAK,SAAUzkC,EAAGC,GAId,MAFAxE,MAAKuE,GAAKA,EACVvE,KAAKwE,GAAKA,EACHxE,MAYXipC,SAAU,SAAU1kC,EAAGC,GAInB,MAFAxE,MAAKuE,GAAKA,EACVvE,KAAKwE,GAAKA,EACHxE,MAYXkpC,SAAU,SAAU3kC,EAAGC,GAInB,MAFAxE,MAAKuE,GAAKA,EACVvE,KAAKwE,GAAKA,EACHxE,MAYXmpC,OAAQ,SAAU5kC,EAAGC,GAIjB,MAFAxE,MAAKuE,GAAKA,EACVvE,KAAKwE,GAAKA,EACHxE,MAYXopC,OAAQ,SAAUvP,EAAK3kB,GAGnB,MADAlV,MAAKuE,EAAI69B,EAAOlgC,KAAKmnC,MAAMrpC,KAAKuE,EAAGs1B,EAAK3kB,GACjClV,MAYXspC,OAAQ,SAAUzP,EAAK3kB,GAGnB,MADAlV,MAAKwE,EAAI49B,EAAOlgC,KAAKmnC,MAAMrpC,KAAKwE,EAAGq1B,EAAK3kB,GACjClV,MAYXqpC,MAAO,SAAUxP,EAAK3kB,GAIlB,MAFAlV,MAAKuE,EAAI69B,EAAOlgC,KAAKmnC,MAAMrpC,KAAKuE,EAAGs1B,EAAK3kB,GACxClV,KAAKwE,EAAI49B,EAAOlgC,KAAKmnC,MAAMrpC,KAAKwE,EAAGq1B,EAAK3kB,GACjClV,MAWX0E,MAAO,SAAUijC,GAWb,MATsB,mBAAXA,IAAqC,OAAXA,EAEjCA,EAAS,GAAIvF,GAAOn+B,MAAMjE,KAAKuE,EAAGvE,KAAKwE,GAIvCmjC,EAAON,MAAMrnC,KAAKuE,EAAGvE,KAAKwE,GAGvBmjC,GAWXJ,OAAQ,SAAUC,GAKd,MAHAA,GAAKjjC,EAAIvE,KAAKuE,EACdijC,EAAKhjC,EAAIxE,KAAKwE,EAEPgjC,GAYXC,SAAU,SAAUD,EAAME,GAEtB,MAAOtF,GAAOn+B,MAAMwjC,SAASznC,KAAMwnC,EAAME,IAW7CQ,OAAQ,SAAU7iC,GAEd,MAAQA,GAAEd,IAAMvE,KAAKuE,GAAKc,EAAEb,IAAMxE,KAAKwE,GAY3C8B,MAAO,SAAUjB,EAAGwiC,GAIhB,MAFyB,mBAAdA,KAA6BA,GAAY,GAEhDA,EAEOzF,EAAOlgC,KAAKqnC,SAASrnC,KAAKsnC,MAAMnkC,EAAEb,EAAIxE,KAAKwE,EAAGa,EAAEd,EAAIvE,KAAKuE,IAIzDrC,KAAKsnC,MAAMnkC,EAAEb,EAAIxE,KAAKwE,EAAGa,EAAEd,EAAIvE,KAAKuE,IAYnDklC,QAAS,SAAUpkC,GAEf,MAAOrF,MAAKipC,SAAS5jC,GAAGiB,MAAMjB,EAAE4jC,SAASjpC,QAe7CqG,OAAQ,SAAU9B,EAAGC,EAAG8B,EAAOuhC,EAAWJ,GAEtC,MAAOrF,GAAOn+B,MAAMoC,OAAOrG,KAAMuE,EAAGC,EAAG8B,EAAOuhC,EAAWJ,IAU7DiC,aAAc,WAEV,MAAOxnC,MAAKgrB,KAAMltB,KAAKuE,EAAIvE,KAAKuE,EAAMvE,KAAKwE,EAAIxE,KAAKwE,IAUxDmlC,eAAgB,WAEZ,MAAQ3pC,MAAKuE,EAAIvE,KAAKuE,EAAMvE,KAAKwE,EAAIxE,KAAKwE,GAW9ColC,aAAc,SAAUC,GAEpB,MAAO7pC,MAAK8pC,YAAYZ,SAASW,EAAWA,IAUhDC,UAAW,WAEP,IAAK9pC,KAAK+pC,SACV,CACI,GAAIC,GAAIhqC,KAAK0pC,cACb1pC,MAAKuE,GAAKylC,EACVhqC,KAAKwE,GAAKwlC,EAGd,MAAOhqC,OAUX+pC,OAAQ,WAEJ,MAAmB,KAAX/pC,KAAKuE,GAAsB,IAAXvE,KAAKwE,GAWjCylC,IAAK,SAAU5kC,GAEX,MAASrF,MAAKuE,EAAIc,EAAEd,EAAMvE,KAAKwE,EAAIa,EAAEb,GAWzC0lC,MAAO,SAAU7kC,GAEb,MAASrF,MAAKuE,EAAIc,EAAEb,EAAMxE,KAAKwE,EAAIa,EAAEd,GAUzCm5B,KAAM,WAEF,MAAO19B,MAAKqnC,OAAOrnC,KAAKwE,EAAGxE,KAAKuE,IAUpC4lC,MAAO,WAEH,MAAOnqC,MAAKqnC,MAAMrnC,KAAKwE,GAAIxE,KAAKuE,IAUpC6lC,gBAAiB,WAEb,MAAOpqC,MAAKqnC,MAAe,GAATrnC,KAAKwE,EAAQxE,KAAKuE,IAUxC8lC,MAAO,WAEH,MAAOrqC,MAAKqnC,MAAMnlC,KAAKmoC,MAAMrqC,KAAKuE,GAAIrC,KAAKmoC,MAAMrqC,KAAKwE,KAU1D+R,KAAM,WAEF,MAAOvW,MAAKqnC,MAAMnlC,KAAKqU,KAAKvW,KAAKuE,GAAIrC,KAAKqU,KAAKvW,KAAKwE,KAUxDgQ,SAAU,WAEN,MAAO,cAAgBxU,KAAKuE,EAAI,MAAQvE,KAAKwE,EAAI,QAMzD49B,EAAOn+B,MAAMJ,UAAUsB,YAAci9B,EAAOn+B,MAW5Cm+B,EAAOn+B,MAAM+kC,IAAM,SAAU3jC,EAAGC,EAAGwiC,GAO/B,MALmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAEnD6jC,EAAIvjC,EAAIc,EAAEd,EAAIe,EAAEf,EAChBujC,EAAItjC,EAAIa,EAAEb,EAAIc,EAAEd,EAETsjC,GAaX1F,EAAOn+B,MAAMglC,SAAW,SAAU5jC,EAAGC,EAAGwiC,GAOpC,MALmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAEnD6jC,EAAIvjC,EAAIc,EAAEd,EAAIe,EAAEf,EAChBujC,EAAItjC,EAAIa,EAAEb,EAAIc,EAAEd,EAETsjC,GAaX1F,EAAOn+B,MAAMilC,SAAW,SAAU7jC,EAAGC,EAAGwiC,GAOpC,MALmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAEnD6jC,EAAIvjC,EAAIc,EAAEd,EAAIe,EAAEf,EAChBujC,EAAItjC,EAAIa,EAAEb,EAAIc,EAAEd,EAETsjC,GAaX1F,EAAOn+B,MAAMklC,OAAS,SAAU9jC,EAAGC,EAAGwiC,GAOlC,MALmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAEnD6jC,EAAIvjC,EAAIc,EAAEd,EAAIe,EAAEf,EAChBujC,EAAItjC,EAAIa,EAAEb,EAAIc,EAAEd,EAETsjC,GAYX1F,EAAOn+B,MAAMikC,OAAS,SAAU7iC,EAAGC,GAE/B,MAAQD,GAAEd,IAAMe,EAAEf,GAAKc,EAAEb,IAAMc,EAAEd,GAYrC49B,EAAOn+B,MAAMqC,MAAQ,SAAUjB,EAAGC,GAG9B,MAAOpD,MAAKsnC,MAAMnkC,EAAEb,EAAIc,EAAEd,EAAGa,EAAEd,EAAIe,EAAEf,IAYzC69B,EAAOn+B,MAAMwlC,QAAU,SAAUpkC,EAAGC,GAEhC,MAAOD,GAAE4jC,SAAS3jC,GAAGgB,MAAMhB,EAAE2jC,SAAS5jC,KAY1C+8B,EAAOn+B,MAAMqmC,SAAW,SAAUjlC,EAAGyiC,GAIjC,MAFmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAE5C6jC,EAAIT,OAAOhiC,EAAEd,GAAIc,EAAEb,IAc9B49B,EAAOn+B,MAAMsmC,YAAc,SAAUllC,EAAGC,EAAGklC,EAAG1C,GAI1C,MAFmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAE5C6jC,EAAIT,MAAMhiC,EAAEd,EAAIe,EAAEf,EAAIimC,EAAGnlC,EAAEb,EAAIc,EAAEd,EAAIgmC,IAchDpI,EAAOn+B,MAAMwmC,YAAc,SAAUplC,EAAGC,EAAGqgC,EAAGmC,GAI1C,MAFmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAE5C6jC,EAAIT,MAAMhiC,EAAEd,GAAKe,EAAEf,EAAIc,EAAEd,GAAKohC,EAAGtgC,EAAEb,GAAKc,EAAEd,EAAIa,EAAEb,GAAKmhC,IAYhEvD,EAAOn+B,MAAMy5B,KAAO,SAAUr4B,EAAGyiC,GAI7B,MAFmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAE5C6jC,EAAIT,OAAOhiC,EAAEb,EAAGa,EAAEd,IAY7B69B,EAAOn+B,MAAMkmC,MAAQ,SAAU9kC,EAAGyiC,GAI9B,MAFmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAE5C6jC,EAAIT,MAAMhiC,EAAEb,GAAIa,EAAEd,IAa7B69B,EAAOn+B,MAAMwjC,SAAW,SAAUpiC,EAAGC,EAAGoiC,GAEpC,GAAID,GAAWrF,EAAOlgC,KAAKulC,SAASpiC,EAAEd,EAAGc,EAAEb,EAAGc,EAAEf,EAAGe,EAAEd,EACrD,OAAOkjC,GAAQxlC,KAAKwlC,MAAMD,GAAYA,GAa1CrF,EAAOn+B,MAAMymC,QAAU,SAAUrlC,EAAGC,EAAGwiC,GAEhB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,MAEnD,IAAI0mC,GAAMtlC,EAAE4kC,IAAI3kC,GAAKA,EAAEqkC,gBAOvB,OALY,KAARgB,GAEA7C,EAAIT,MAAMsD,EAAMrlC,EAAEf,EAAGomC,EAAMrlC,EAAEd,GAG1BsjC,GAaX1F,EAAOn+B,MAAM2mC,YAAc,SAAUvlC,EAAGC,EAAGwiC,GAEpB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,MAEnD,IAAI0mC,GAAMtlC,EAAE4kC,IAAI3kC,EAOhB,OALY,KAARqlC,GAEA7C,EAAIT,MAAMsD,EAAMrlC,EAAEf,EAAGomC,EAAMrlC,EAAEd,GAG1BsjC,GAYX1F,EAAOn+B,MAAMmmC,gBAAkB,SAAU/kC,EAAGyiC,GAIxC,MAFmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAE5C6jC,EAAIT,MAAY,GAANhiC,EAAEb,EAAQa,EAAEd,IAYjC69B,EAAOn+B,MAAM6lC,UAAY,SAAUzkC,EAAGyiC,GAEf,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,MAEnD,IAAI+lC,GAAI3kC,EAAEqkC,cAOV,OALU,KAANM,GAEAlC,EAAIT,MAAMhiC,EAAEd,EAAIylC,EAAG3kC,EAAEb,EAAIwlC,GAGtBlC,GAgBX1F,EAAOn+B,MAAMoC,OAAS,SAAUhB,EAAGd,EAAGC,EAAG8B,EAAOuhC,EAAWJ,GAEvDI,EAAYA,IAAa,EACzBJ,EAAWA,GAAY,KAEnBI,IAEAvhC,EAAQ87B,EAAOlgC,KAAKkmC,SAAS9hC,IAIhB,OAAbmhC,IAEAA,EAAWvlC,KAAKgrB,MAAO3oB,EAAIc,EAAEd,IAAMA,EAAIc,EAAEd,IAAQC,EAAIa,EAAEb,IAAMA,EAAIa,EAAEb,IAGvE,IAAIqmC,GAAgBvkC,EAAQpE,KAAKsnC,MAAMnkC,EAAEb,EAAIA,EAAGa,EAAEd,EAAIA,EAEtD,OAAOc,GAAEgiC,MAAM9iC,EAAIkjC,EAAWvlC,KAAKqE,IAAIskC,GAAgBrmC,EAAIijC,EAAWvlC,KAAKsE,IAAIqkC,KAYnFzI,EAAOn+B,MAAM6mC,SAAW,SAAUlnC,EAAQkkC,GAItC,GAFmB,mBAARA,KAAuBA,EAAM,GAAI1F,GAAOn+B,OAEJ,mBAA3CkF,OAAOtF,UAAU2Q,SAASzQ,KAAKH,GAE/B,KAAM,IAAIkJ,OAAM,oDAGpB,IAAIi+B,GAAennC,EAAOS,MAE1B,IAAmB,EAAf0mC,EAEA,KAAM,IAAIj+B,OAAM,2DAGpB,IAAqB,IAAjBi+B,EAGA,MADAjD,GAAIR,SAAS1jC,EAAO,IACbkkC,CAGX,KAAK,GAAI3jC,GAAI,EAAO4mC,EAAJ5mC,EAAkBA,IAE9Bi+B,EAAOn+B,MAAM+kC,IAAIlB,EAAKlkC,EAAOO,GAAI2jC,EAKrC,OAFAA,GAAIqB,OAAO4B,EAAcA,GAElBjD,GAeX1F,EAAOn+B,MAAM+mC,MAAQ,SAAShvB,EAAKivB,EAAOC,GAEtCD,EAAQA,GAAS,IACjBC,EAAQA,GAAS,GAEjB,IAAI5N,GAAQ,GAAI8E,GAAOn+B,KAYvB,OAVI+X,GAAIivB,KAEJ3N,EAAM/4B,EAAIqT,SAASoE,EAAIivB,GAAQ,KAG/BjvB,EAAIkvB,KAEJ5N,EAAM94B,EAAIoT,SAASoE,EAAIkvB,GAAQ,KAG5B5N,GAKXr9B,KAAKgE,MAAQm+B,EAAOn+B,MAmBpBm+B,EAAOl7B,UAAY,SAAU3C,EAAGC,EAAG2C,EAAOC,GAEtC7C,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT2C,EAAQA,GAAS,EACjBC,EAASA,GAAU,EAKnBpH,KAAKuE,EAAIA,EAKTvE,KAAKwE,EAAIA,EAKTxE,KAAKmH,MAAQA,EAKbnH,KAAKoH,OAASA,GAIlBg7B,EAAOl7B,UAAUrD,WASb6iB,OAAQ,SAAUpV,EAAIE,GAKlB,MAHAxR,MAAKuE,GAAK+M,EACVtR,KAAKwE,GAAKgN,EAEHxR,MAUX+nC,YAAa,SAAUzK,GAEnB,MAAOt9B,MAAK0mB,OAAO4W,EAAM/4B,EAAG+4B,EAAM94B,IAatC6iC,MAAO,SAAU9iC,EAAGC,EAAG2C,EAAOC,GAO1B,MALApH,MAAKuE,EAAIA,EACTvE,KAAKwE,EAAIA,EACTxE,KAAKmH,MAAQA,EACbnH,KAAKoH,OAASA,EAEPpH,MAYXoG,MAAO,SAAU7B,EAAGC,GAOhB,MALiB,mBAANA,KAAqBA,EAAID,GAEpCvE,KAAKmH,OAAS5C,EACdvE,KAAKoH,QAAU5C,EAERxE,MAYXmrC,SAAU,SAAU5mC,EAAGC,GAKnB,MAHAxE,MAAKk8B,QAAU33B,EACfvE,KAAKm8B,QAAU33B,EAERxE,MAQXqqC,MAAO,WAEHrqC,KAAKuE,EAAIrC,KAAKmoC,MAAMrqC,KAAKuE,GACzBvE,KAAKwE,EAAItC,KAAKmoC,MAAMrqC,KAAKwE,IAQ7B4mC,SAAU,WAENprC,KAAKuE,EAAIrC,KAAKmoC,MAAMrqC,KAAKuE,GACzBvE,KAAKwE,EAAItC,KAAKmoC,MAAMrqC,KAAKwE,GACzBxE,KAAKmH,MAAQjF,KAAKmoC,MAAMrqC,KAAKmH,OAC7BnH,KAAKoH,OAASlF,KAAKmoC,MAAMrqC,KAAKoH,SAUlCkgC,SAAU,SAAUz1B,GAEhB,MAAO7R,MAAKqnC,MAAMx1B,EAAOtN,EAAGsN,EAAOrN,EAAGqN,EAAO1K,MAAO0K,EAAOzK,SAU/DmgC,OAAQ,SAAUC,GAOd,MALAA,GAAKjjC,EAAIvE,KAAKuE,EACdijC,EAAKhjC,EAAIxE,KAAKwE,EACdgjC,EAAKrgC,MAAQnH,KAAKmH,MAClBqgC,EAAKpgC,OAASpH,KAAKoH,OAEZogC,GAWX6D,QAAS,SAAU/5B,EAAIE,GAEnB,MAAO4wB,GAAOl7B,UAAUmkC,QAAQrrC,KAAMsR,EAAIE,IAU9CsG,KAAM,SAAU6vB,GAEZ,MAAOvF,GAAOl7B,UAAU4Q,KAAK9X,KAAM2nC,IAUvCjjC,MAAO,SAAUijC,GAEb,MAAOvF,GAAOl7B,UAAUxC,MAAM1E,KAAM2nC,IAWxChjC,SAAU,SAAUJ,EAAGC,GAEnB,MAAO49B,GAAOl7B,UAAUvC,SAAS3E,KAAMuE,EAAGC,IAW9C8mC,aAAc,SAAUhmC,GAEpB,MAAO88B,GAAOl7B,UAAUokC,aAAahmC,EAAGtF,OAW5CkoC,OAAQ,SAAU5iC,GAEd,MAAO88B,GAAOl7B,UAAUghC,OAAOloC,KAAMsF,IAWzCimC,aAAc,SAAUjmC,EAAGwiC,GAEvB,MAAO1F,GAAOl7B,UAAUqkC,aAAavrC,KAAMsF,EAAGwiC,IAYlDK,WAAY,SAAU7iC,EAAGkmC,GAErB,MAAOpJ,GAAOl7B,UAAUihC,WAAWnoC,KAAMsF,EAAGkmC,IAehDC,cAAe,SAAUtF,EAAMD,EAAO8B,EAAKC,EAAQuD,GAE/C,MAAOpJ,GAAOl7B,UAAUukC,cAAczrC,KAAMmmC,EAAMD,EAAO8B,EAAKC,EAAQuD,IAW1EE,MAAO,SAAUpmC,EAAGwiC,GAEhB,MAAO1F,GAAOl7B,UAAUwkC,MAAM1rC,KAAMsF,EAAGwiC,IAS3CtzB,SAAU,WAEN,MAAO,kBAAoBxU,KAAKuE,EAAI,MAAQvE,KAAKwE,EAAI,UAAYxE,KAAKmH,MAAQ,WAAanH,KAAKoH,OAAS,UAAYpH,KAAK2rC,MAAQ,QAW1IxiC,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,aAE9CwF,IAAK,WACD,MAAOnH,MAAKwlC,MAAM1nC,KAAKmH,MAAQ,MAUvCgC,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,cAE9CwF,IAAK,WACD,MAAOnH,MAAKwlC,MAAM1nC,KAAKoH,OAAS,MAUxC+B,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,UAE9CwF,IAAK,WACD,MAAOrJ,MAAKwE,EAAIxE,KAAKoH,QAGzBkC,IAAK,SAAUC,GAEPvJ,KAAKoH,OADLmC,GAASvJ,KAAKwE,EACA,EAEA+E,EAAQvJ,KAAKwE,KAWvC2E,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,eAE9CwF,IAAK,WACD,MAAO,IAAI+4B,GAAOn+B,MAAMjE,KAAKkmC,MAAOlmC,KAAKioC,SAG7C3+B,IAAK,SAAUC,GACXvJ,KAAKkmC,MAAQ38B,EAAMhF,EACnBvE,KAAKioC,OAAS1+B,EAAM/E,KAU5B2E,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,QAE9CwF,IAAK,WACD,MAAOrJ,MAAKuE,GAGhB+E,IAAK,SAAUC,GAEPvJ,KAAKmH,MADLoC,GAASvJ,KAAKkmC,MACD,EAEAlmC,KAAKkmC,MAAQ38B,EAE9BvJ,KAAKuE,EAAIgF,KAUjBJ,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,SAE9CwF,IAAK,WACD,MAAOrJ,MAAKuE,EAAIvE,KAAKmH,OAGzBmC,IAAK,SAAUC,GAEPvJ,KAAKmH,MADLoC,GAASvJ,KAAKuE,EACD,EAEAgF,EAAQvJ,KAAKuE,KAYtC4E,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,UAE9CwF,IAAK,WACD,MAAOrJ,MAAKmH,MAAQnH,KAAKoH,UAWjC+B,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,aAE9CwF,IAAK,WACD,MAAqB,GAAbrJ,KAAKmH,MAA4B,EAAdnH,KAAKoH,UAUxC+B,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,WAE9CwF,IAAK,WACD,MAAOrJ,MAAKuE,EAAIvE,KAAKsoC,WAGzBh/B,IAAK,SAAUC,GACXvJ,KAAKuE,EAAIgF,EAAQvJ,KAAKsoC,aAU9Bn/B,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,WAE9CwF,IAAK,WACD,MAAOrJ,MAAKwE,EAAIxE,KAAKwoC,YAGzBl/B,IAAK,SAAUC,GACXvJ,KAAKwE,EAAI+E,EAAQvJ,KAAKwoC,cAW9Br/B,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,WAE9CwF,IAAK,WAED,MAAOrJ,MAAKuE,EAAKrC,KAAK4iC,SAAW9kC,KAAKmH,SAY9CgC,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,WAE9CwF,IAAK,WAED,MAAOrJ,MAAKwE,EAAKtC,KAAK4iC,SAAW9kC,KAAKoH,UAY9C+B,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,OAE9CwF,IAAK,WACD,MAAOrJ,MAAKwE,GAGhB8E,IAAK,SAAUC,GACPA,GAASvJ,KAAKioC,QACdjoC,KAAKoH,OAAS,EACdpH,KAAKwE,EAAI+E,GAETvJ,KAAKoH,OAAUpH,KAAKioC,OAAS1+B,KAWzCJ,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,WAE9CwF,IAAK,WACD,MAAO,IAAI+4B,GAAOn+B,MAAMjE,KAAKuE,EAAGvE,KAAKwE,IAGzC8E,IAAK,SAAUC,GACXvJ,KAAKuE,EAAIgF,EAAMhF,EACfvE,KAAKwE,EAAI+E,EAAM/E,KAUvB2E,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,YAE9CwF,IAAK,WACD,MAAO,IAAI+4B,GAAOn+B,MAAMjE,KAAKuE,EAAIvE,KAAKmH,MAAOnH,KAAKwE,IAGtD8E,IAAK,SAAUC,GACXvJ,KAAKkmC,MAAQ38B,EAAMhF,EACnBvE,KAAKwE,EAAI+E,EAAM/E,KAWvB2E,OAAOC,eAAeg5B,EAAOl7B,UAAUrD,UAAW,SAE9CwF,IAAK,WACD,OAASrJ,KAAKmH,QAAUnH,KAAKoH,QAGjCkC,IAAK,SAAUC,GAEPA,KAAU,GAEVvJ,KAAKqnC,MAAM,EAAG,EAAG,EAAG,MAOhCjF,EAAOl7B,UAAUrD,UAAUsB,YAAci9B,EAAOl7B,UAUhDk7B,EAAOl7B,UAAUmkC,QAAU,SAAUhmC,EAAGiM,EAAIE,GAOxC,MALAnM,GAAEd,GAAK+M,EACPjM,EAAE8B,OAAS,EAAImK,EACfjM,EAAEb,GAAKgN,EACPnM,EAAE+B,QAAU,EAAIoK,EAETnM,GAWX+8B,EAAOl7B,UAAU0kC,aAAe,SAAUvmC,EAAGi4B,GAEzC,MAAO8E,GAAOl7B,UAAUmkC,QAAQhmC,EAAGi4B,EAAM/4B,EAAG+4B,EAAM94B,IAWtD49B,EAAOl7B,UAAU4Q,KAAO,SAAUzS,EAAGsiC,GAWjC,MATsB,mBAAXA,IAAqC,OAAXA,EAEjCA,EAAS,GAAIvF,GAAOn+B,MAAMoB,EAAE8B,MAAO9B,EAAE+B,QAIrCugC,EAAON,MAAMhiC,EAAE8B,MAAO9B,EAAE+B,QAGrBugC,GAWXvF,EAAOl7B,UAAUxC,MAAQ,SAAUW,EAAGsiC,GAWlC,MATsB,mBAAXA,IAAqC,OAAXA,EAEjCA,EAAS,GAAIvF,GAAOl7B,UAAU7B,EAAEd,EAAGc,EAAEb,EAAGa,EAAE8B,MAAO9B,EAAE+B,QAInDugC,EAAON,MAAMhiC,EAAEd,EAAGc,EAAEb,EAAGa,EAAE8B,MAAO9B,EAAE+B,QAG/BugC,GAYXvF,EAAOl7B,UAAUvC,SAAW,SAAUU,EAAGd,EAAGC,GAExC,MAAIa,GAAE8B,OAAS,GAAK9B,EAAE+B,QAAU,GAErB,EAGH7C,GAAKc,EAAEd,GAAKA,EAAIc,EAAE6gC,OAAS1hC,GAAKa,EAAEb,GAAKA,EAAIa,EAAE4iC,QAezD7F,EAAOl7B,UAAU2kC,YAAc,SAAU3Q,EAAIC,EAAI2Q,EAAIC,EAAIxnC,EAAGC,GAExD,MAAQD,IAAK22B,GAAWA,EAAK4Q,EAAVvnC,GAAiBC,GAAK22B,GAAWA,EAAK4Q,EAAVvnC,GAWnD49B,EAAOl7B,UAAU8kC,cAAgB,SAAU3mC,EAAGi4B,GAE1C,MAAO8E,GAAOl7B,UAAUvC,SAASU,EAAGi4B,EAAM/4B,EAAG+4B,EAAM94B,IAYvD49B,EAAOl7B,UAAUokC,aAAe,SAAUjmC,EAAGC,GAGzC,MAAID,GAAE4mC,OAAS3mC,EAAE2mC,QAEN,EAGH5mC,EAAEd,GAAKe,EAAEf,GAAKc,EAAEb,GAAKc,EAAEd,GAAKa,EAAE6gC,MAAQ5gC,EAAE4gC,OAAS7gC,EAAE4iC,OAAS3iC,EAAE2iC,QAY1E7F,EAAOl7B,UAAUghC,OAAS,SAAU7iC,EAAGC,GAEnC,MAAQD,GAAEd,GAAKe,EAAEf,GAAKc,EAAEb,GAAKc,EAAEd,GAAKa,EAAE8B,OAAS7B,EAAE6B,OAAS9B,EAAE+B,QAAU9B,EAAE8B,QAW5Eg7B,EAAOl7B,UAAUglC,eAAiB,SAAU7mC,EAAGC,GAE3C,MAAQD,GAAE8B,QAAU7B,EAAE6B,OAAS9B,EAAE+B,SAAW9B,EAAE8B,QAYlDg7B,EAAOl7B,UAAUqkC,aAAe,SAAUlmC,EAAGC,EAAGqiC,GAe5C,MAbsB,mBAAXA,KAEPA,EAAS,GAAIvF,GAAOl7B,WAGpBk7B,EAAOl7B,UAAUihC,WAAW9iC,EAAGC,KAE/BqiC,EAAOpjC,EAAIrC,KAAKgT,IAAI7P,EAAEd,EAAGe,EAAEf,GAC3BojC,EAAOnjC,EAAItC,KAAKgT,IAAI7P,EAAEb,EAAGc,EAAEd,GAC3BmjC,EAAOxgC,MAAQjF,KAAK23B,IAAIx0B,EAAE6gC,MAAO5gC,EAAE4gC,OAASyB,EAAOpjC,EACnDojC,EAAOvgC,OAASlF,KAAK23B,IAAIx0B,EAAE4iC,OAAQ3iC,EAAE2iC,QAAUN,EAAOnjC,GAGnDmjC;EAYXvF,EAAOl7B,UAAUihC,WAAa,SAAU9iC,EAAGC,GAEvC,MAAID,GAAE8B,OAAS,GAAK9B,EAAE+B,QAAU,GAAK9B,EAAE6B,OAAS,GAAK7B,EAAE8B,QAAU,GAEtD,IAGF/B,EAAE6gC,MAAQ5gC,EAAEf,GAAKc,EAAE4iC,OAAS3iC,EAAEd,GAAKa,EAAEd,EAAIe,EAAE4gC,OAAS7gC,EAAEb,EAAIc,EAAE2iC,SAczE7F,EAAOl7B,UAAUukC,cAAgB,SAAUpmC,EAAG8gC,EAAMD,EAAO8B,EAAKC,EAAQuD,GAIpE,MAFyB,mBAAdA,KAA6BA,EAAY,KAE3CrF,EAAO9gC,EAAE6gC,MAAQsF,GAAatF,EAAQ7gC,EAAE8gC,KAAOqF,GAAaxD,EAAM3iC,EAAE4iC,OAASuD,GAAavD,EAAS5iC,EAAE2iC,IAAMwD,IAYxHpJ,EAAOl7B,UAAUwkC,MAAQ,SAAUrmC,EAAGC,EAAGqiC,GAOrC,MALsB,mBAAXA,KAEPA,EAAS,GAAIvF,GAAOl7B,WAGjBygC,EAAON,MAAMnlC,KAAK23B,IAAIx0B,EAAEd,EAAGe,EAAEf,GAAIrC,KAAK23B,IAAIx0B,EAAEb,EAAGc,EAAEd,GAAItC,KAAKgT,IAAI7P,EAAE6gC,MAAO5gC,EAAE4gC,OAAShkC,KAAK23B,IAAIx0B,EAAE8gC,KAAM7gC,EAAE6gC,MAAOjkC,KAAKgT,IAAI7P,EAAE4iC,OAAQ3iC,EAAE2iC,QAAU/lC,KAAK23B,IAAIx0B,EAAE2iC,IAAK1iC,EAAE0iC,OAaxK5F,EAAOl7B,UAAUilC,KAAO,SAASvoC,EAAQkkC,GAElB,mBAARA,KACPA,EAAM,GAAI1F,GAAOl7B,UAGrB,IAAIklC,GAAOC,OAAOC,UACdC,EAAOF,OAAOG,UACdC,EAAOJ,OAAOC,UACdI,EAAOL,OAAOG,SAoBlB,OAlBA5oC,GAAO+oC,QAAQ,SAASrP,GAChBA,EAAM/4B,EAAI6nC,IACVA,EAAO9O,EAAM/4B,GAEb+4B,EAAM/4B,EAAIgoC,IACVA,EAAOjP,EAAM/4B,GAGb+4B,EAAM94B,EAAIioC,IACVA,EAAOnP,EAAM94B,GAEb84B,EAAM94B,EAAIkoC,IACVA,EAAOpP,EAAM94B,KAIrBsjC,EAAIT,MAAMkF,EAAMG,EAAMN,EAAOG,EAAME,EAAOC,GAEnC5E,GAIX7nC,KAAKiH,UAAYk7B,EAAOl7B,UACxBjH,KAAKsH,eAAiB,GAAI66B,GAAOl7B,UAAU,EAAG,EAAG,EAAG,GAkBpDk7B,EAAOwK,KAAO,SAAUvlC,EAAIC,EAAIgJ,EAAIC,GAEhClJ,EAAKA,GAAM,EACXC,EAAKA,GAAM,EACXgJ,EAAKA,GAAM,EACXC,EAAKA,GAAM,EAKXvQ,KAAKoP,MAAQ,GAAIgzB,GAAOn+B,MAAMoD,EAAIC,GAKlCtH,KAAK8N,IAAM,GAAIs0B,GAAOn+B,MAAMqM,EAAIC,IAIpC6xB,EAAOwK,KAAK/oC,WAWRwjC,MAAO,SAAUhgC,EAAIC,EAAIgJ,EAAIC,GAKzB,MAHAvQ,MAAKoP,MAAMi4B,MAAMhgC,EAAIC,GACrBtH,KAAK8N,IAAIu5B,MAAM/2B,EAAIC,GAEZvQ,MAaX6sC,WAAY,SAAUC,EAAaC,EAAWC,GAI1C,MAFyB,mBAAdA,KAA6BA,GAAY,GAEhDA,EAEOhtC,KAAKqnC,MAAMyF,EAAYG,OAAO1oC,EAAGuoC,EAAYG,OAAOzoC,EAAGuoC,EAAUE,OAAO1oC,EAAGwoC,EAAUE,OAAOzoC,GAGhGxE,KAAKqnC,MAAMyF,EAAYvoC,EAAGuoC,EAAYtoC,EAAGuoC,EAAUxoC,EAAGwoC,EAAUvoC,IAe3E2jC,WAAY,SAAUrxB,EAAMo2B,EAAWj2B,GAEnC,MAAOmrB,GAAOwK,KAAKO,iBAAiBntC,KAAKoP,MAAOpP,KAAK8N,IAAKgJ,EAAK1H,MAAO0H,EAAKhJ,IAAKo/B,EAAWj2B,IAW/Fm2B,YAAa,SAAU7oC,EAAGC,GAEtB,OAASD,EAAIvE,KAAKoP,MAAM7K,IAAMvE,KAAK8N,IAAItJ,EAAIxE,KAAKoP,MAAM5K,MAAQxE,KAAK8N,IAAIvJ,EAAIvE,KAAKoP,MAAM7K,IAAMC,EAAIxE,KAAKoP,MAAM5K,IAW/G6oC,eAAgB,SAAU9oC,EAAGC,GAEzB,GAAI+nC,GAAOrqC,KAAK23B,IAAI75B,KAAKoP,MAAM7K,EAAGvE,KAAK8N,IAAIvJ,GACvC6nC,EAAOlqC,KAAKgT,IAAIlV,KAAKoP,MAAM7K,EAAGvE,KAAK8N,IAAIvJ,GACvCmoC,EAAOxqC,KAAK23B,IAAI75B,KAAKoP,MAAM5K,EAAGxE,KAAK8N,IAAItJ,GACvCioC,EAAOvqC,KAAKgT,IAAIlV,KAAKoP,MAAM5K,EAAGxE,KAAK8N,IAAItJ,EAE3C,OAAQxE,MAAKotC,YAAY7oC,EAAGC,IAAOD,GAAKgoC,GAAaH,GAAL7nC,GAAeC,GAAKkoC,GAAaD,GAALjoC,GAahF8oC,kBAAmB,SAAUC,EAAUC,GAEX,mBAAbD,KAA4BA,EAAW,GAC3B,mBAAZC,KAA2BA,KAEtC,IAAInmC,GAAKnF,KAAKwlC,MAAM1nC,KAAKoP,MAAM7K,GAC3B+C,EAAKpF,KAAKwlC,MAAM1nC,KAAKoP,MAAM5K,GAC3B8L,EAAKpO,KAAKwlC,MAAM1nC,KAAK8N,IAAIvJ,GACzBgM,EAAKrO,KAAKwlC,MAAM1nC,KAAK8N,IAAItJ,GAEzB8M,EAAKpP,KAAKirB,IAAI7c,EAAKjJ,GACnBmK,EAAKtP,KAAKirB,IAAI5c,EAAKjJ,GACnBmmC,EAAWn9B,EAALjJ,EAAW,EAAI,GACrBqmC,EAAWn9B,EAALjJ,EAAW,EAAI,GACrBqmC,EAAMr8B,EAAKE,CAEfg8B,GAAQlpC,MAAM+C,EAAIC,GAIlB,KAFA,GAAInD,GAAI,EAEEkD,GAAMiJ,GAAQhJ,GAAMiJ,GAC9B,CACI,GAAIq9B,GAAKD,GAAO,CAEZC,IAAMp8B,IAENm8B,GAAOn8B,EACPnK,GAAMomC,GAGDn8B,EAALs8B,IAEAD,GAAOr8B,EACPhK,GAAMomC,GAGNvpC,EAAIopC,IAAa,GAEjBC,EAAQlpC,MAAM+C,EAAIC,IAGtBnD,IAIJ,MAAOqpC,IAUX9oC,MAAO,SAAUijC,GAWb,MATsB,mBAAXA,IAAqC,OAAXA,EAEjCA,EAAS,GAAIvF,GAAOwK,KAAK5sC,KAAKoP,MAAM7K,EAAGvE,KAAKoP,MAAM5K,EAAGxE,KAAK8N,IAAIvJ,EAAGvE,KAAK8N,IAAItJ,GAI1EmjC,EAAON,MAAMrnC,KAAKoP,MAAM7K,EAAGvE,KAAKoP,MAAM5K,EAAGxE,KAAK8N,IAAIvJ,EAAGvE,KAAK8N,IAAItJ,GAG3DmjC,IAWfx+B,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,UAEzCwF,IAAK,WACD,MAAOnH,MAAKgrB,MAAMltB,KAAK8N,IAAIvJ,EAAIvE,KAAKoP,MAAM7K,IAAMvE,KAAK8N,IAAIvJ,EAAIvE,KAAKoP,MAAM7K,IAAMvE,KAAK8N,IAAItJ,EAAIxE,KAAKoP,MAAM5K,IAAMxE,KAAK8N,IAAItJ,EAAIxE,KAAKoP,MAAM5K,OAU5I2E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,SAEzCwF,IAAK,WACD,MAAOnH,MAAKsnC,MAAMxpC,KAAK8N,IAAItJ,EAAIxE,KAAKoP,MAAM5K,EAAGxE,KAAK8N,IAAIvJ,EAAIvE,KAAKoP,MAAM7K,MAU7E4E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,SAEzCwF,IAAK,WACD,OAAQrJ,KAAK8N,IAAItJ,EAAIxE,KAAKoP,MAAM5K,IAAMxE,KAAK8N,IAAIvJ,EAAIvE,KAAKoP,MAAM7K,MAUtE4E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,aAEzCwF,IAAK,WACD,SAAUrJ,KAAK8N,IAAIvJ,EAAIvE,KAAKoP,MAAM7K,IAAMvE,KAAK8N,IAAItJ,EAAIxE,KAAKoP,MAAM5K,OAUxE2E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,KAEzCwF,IAAK,WACD,MAAOnH,MAAK23B,IAAI75B,KAAKoP,MAAM7K,EAAGvE,KAAK8N,IAAIvJ,MAU/C4E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,KAEzCwF,IAAK,WACD,MAAOnH,MAAK23B,IAAI75B,KAAKoP,MAAM5K,EAAGxE,KAAK8N,IAAItJ,MAU/C2E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,QAEzCwF,IAAK,WACD,MAAOnH,MAAK23B,IAAI75B,KAAKoP,MAAM7K,EAAGvE,KAAK8N,IAAIvJ,MAU/C4E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,SAEzCwF,IAAK,WACD,MAAOnH,MAAKgT,IAAIlV,KAAKoP,MAAM7K,EAAGvE,KAAK8N,IAAIvJ,MAU/C4E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,OAEzCwF,IAAK,WACD,MAAOnH,MAAK23B,IAAI75B,KAAKoP,MAAM5K,EAAGxE,KAAK8N,IAAItJ,MAU/C2E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,UAEzCwF,IAAK,WACD,MAAOnH,MAAKgT,IAAIlV,KAAKoP,MAAM5K,EAAGxE,KAAK8N,IAAItJ,MAU/C2E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,SAEzCwF,IAAK,WACD,MAAOnH,MAAKirB,IAAIntB,KAAKoP,MAAM7K,EAAIvE,KAAK8N,IAAIvJ,MAUhD4E,OAAOC,eAAeg5B,EAAOwK,KAAK/oC,UAAW,UAEzCwF,IAAK,WACD,MAAOnH,MAAKirB,IAAIntB,KAAKoP,MAAM5K,EAAIxE,KAAK8N,IAAItJ,MAoBhD49B,EAAOwK,KAAKO,iBAAmB,SAAU9nC,EAAGC,EAAGqW,EAAGgqB,EAAGuH,EAAWj2B,GAEnC,mBAAdi2B,KAA6BA,GAAY,GAC9B,mBAAXj2B,KAA0BA,EAAS,GAAImrB,GAAOn+B,MAEzD,IAAIwC,GAAKnB,EAAEd,EAAIa,EAAEb,EACbgoB,EAAKmZ,EAAEnhC,EAAImX,EAAEnX,EACbsC,EAAKzB,EAAEd,EAAIe,EAAEf,EACbkoB,EAAK9Q,EAAEpX,EAAIohC,EAAEphC,EACbmC,EAAMpB,EAAEf,EAAIc,EAAEb,EAAMa,EAAEd,EAAIe,EAAEd,EAC5BkoB,EAAMiZ,EAAEphC,EAAIoX,EAAEnX,EAAMmX,EAAEpX,EAAIohC,EAAEnhC,EAC5BmoB,EAASlmB,EAAKgmB,EAAOD,EAAK1lB,CAE9B,IAAc,IAAV6lB,EAEA,MAAO,KAMX,IAHA1V,EAAO1S,GAAMuC,EAAK4lB,EAAOD,EAAK/lB,GAAOimB,EACrC1V,EAAOzS,GAAMgoB,EAAK9lB,EAAOD,EAAKimB,GAAOC,EAEjCugB,EACJ,CACI,GAAIW,IAAOlI,EAAEnhC,EAAEmX,EAAEnX,IAAIc,EAAEf,EAAEc,EAAEd,IAAMohC,EAAEphC,EAAEoX,EAAEpX,IAAIe,EAAEd,EAAGa,EAAEb,GAC9CspC,IAAQnI,EAAEphC,EAAEoX,EAAEpX,IAAIc,EAAEb,EAAEmX,EAAEnX,IAAOmhC,EAAEnhC,EAAEmX,EAAEnX,IAAIa,EAAEd,EAAEoX,EAAEpX,IAAMspC,EACrDE,IAAQzoC,EAAEf,EAAGc,EAAEd,IAAIc,EAAEb,EAAGmX,EAAEnX,IAAQc,EAAEd,EAAEa,EAAEb,IAAIa,EAAEd,EAAGoX,EAAEpX,IAAOspC,CAC9D,OAAIC,IAAK,GAAS,GAAJA,GAASC,GAAK,GAAU,GAALA,EACtB92B,EAEA,KAIf,MAAOA,IAkBXmrB,EAAOwK,KAAKzE,WAAa,SAAU9iC,EAAGC,EAAG4nC,EAAWj2B,GAEhD,MAAOmrB,GAAOwK,KAAKO,iBAAiB9nC,EAAE+J,MAAO/J,EAAEyI,IAAKxI,EAAE8J,MAAO9J,EAAEwI,IAAKo/B,EAAWj2B,IAqBnFmrB,EAAO4L,QAAU,SAAUzpC,EAAGC,EAAG2C,EAAOC,GAEpCpH,KAAKiD,KAAOm/B,EAAO2B,QAEnBx/B,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT2C,EAAQA,GAAS,EACjBC,EAASA,GAAU,EAKnBpH,KAAKuE,EAAIA,EAKTvE,KAAKwE,EAAIA,EAKTxE,KAAKmH,MAAQA,EAKbnH,KAAKoH,OAASA,GAIlBg7B,EAAO4L,QAAQnqC,WAWXwjC,MAAO,SAAU9iC,EAAGC,EAAG2C,EAAOC,GAO1B,MALApH,MAAKuE,EAAIA,EACTvE,KAAKwE,EAAIA,EACTxE,KAAKmH,MAAQA,EACbnH,KAAKoH,OAASA,EAEPpH,MASXuK,UAAW,WAEP,MAAO,IAAI63B,GAAOl7B,UAAUlH,KAAKuE,EAAIvE,KAAKmH,MAAOnH,KAAKwE,EAAIxE,KAAKoH,OAAQpH,KAAKmH,MAAOnH,KAAKoH,SAU5FkgC,SAAU,SAAUz1B,GAEhB,MAAO7R,MAAKqnC,MAAMx1B,EAAOtN,EAAGsN,EAAOrN,EAAGqN,EAAO1K,MAAO0K,EAAOzK,SAU/DmgC,OAAQ,SAASC,GAOb,MALAA,GAAKjjC,EAAIvE,KAAKuE,EACdijC,EAAKhjC,EAAIxE,KAAKwE,EACdgjC,EAAKrgC,MAAQnH,KAAKmH,MAClBqgC,EAAKpgC,OAASpH,KAAKoH,OAEZogC,GAUX9iC,MAAO,SAASijC,GAWZ,MATsB,mBAAXA,IAAqC,OAAXA,EAEjCA,EAAS,GAAIvF,GAAO4L,QAAQhuC,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKmH,MAAOnH,KAAKoH,QAI7DugC,EAAON,MAAMrnC,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKmH,MAAOnH,KAAKoH,QAG3CugC,GAWXhjC,SAAU,SAAUJ,EAAGC,GAEnB,MAAO49B,GAAO4L,QAAQrpC,SAAS3E,KAAMuE,EAAGC,IAS5CgQ,SAAU,WACN,MAAO,uBAAyBxU,KAAKuE,EAAI,MAAQvE,KAAKwE,EAAI,UAAYxE,KAAKmH,MAAQ,WAAanH,KAAKoH,OAAS,QAKtHg7B,EAAO4L,QAAQnqC,UAAUsB,YAAci9B,EAAO4L,QAO9C7kC,OAAOC,eAAeg5B,EAAO4L,QAAQnqC,UAAW,QAE5CwF,IAAK,WACD,MAAOrJ,MAAKuE,GAGhB+E,IAAK,SAAUC,GAEXvJ,KAAKuE,EAAIgF,KAWjBJ,OAAOC,eAAeg5B,EAAO4L,QAAQnqC,UAAW,SAE5CwF,IAAK,WACD,MAAOrJ,MAAKuE,EAAIvE,KAAKmH,OAGzBmC,IAAK,SAAUC,GAIPvJ,KAAKmH,MAFLoC,EAAQvJ,KAAKuE,EAEA,EAIAvE,KAAKuE,EAAIgF,KAWlCJ,OAAOC,eAAeg5B,EAAO4L,QAAQnqC,UAAW,OAE5CwF,IAAK,WACD,MAAOrJ,MAAKwE,GAGhB8E,IAAK,SAAUC,GACXvJ,KAAKwE,EAAI+E,KAUjBJ,OAAOC,eAAeg5B,EAAO4L,QAAQnqC,UAAW,UAE5CwF,IAAK,WACD,MAAOrJ,MAAKwE,EAAIxE,KAAKoH,QAGzBkC,IAAK,SAAUC,GAIPvJ,KAAKoH,OAFLmC,EAAQvJ,KAAKwE,EAEC,EAIAxE,KAAKwE,EAAI+E,KAYnCJ,OAAOC,eAAeg5B,EAAO4L,QAAQnqC,UAAW,SAE5CwF,IAAK,WACD,MAAuB,KAAfrJ,KAAKmH,OAA+B,IAAhBnH,KAAKoH,QAGrCkC,IAAK,SAAUC,GAEPA,KAAU,GAEVvJ,KAAKqnC,MAAM,EAAG,EAAG,EAAG,MAehCjF,EAAO4L,QAAQrpC,SAAW,SAAUU,EAAGd,EAAGC,GAEtC,GAAIa,EAAE8B,OAAS,GAAK9B,EAAE+B,QAAU,EAE5B,OAAO,CAIX,IAAI6mC,IAAU1pC,EAAIc,EAAEd,GAAKc,EAAE8B,MAAS,GAChC+mC,GAAU1pC,EAAIa,EAAEb,GAAKa,EAAE+B,OAAU,EAKrC,OAHA6mC,IAASA,EACTC,GAASA,EAEe,IAAhBD,EAAQC,GAUpB9L,EAAO4L,QAAQnqC,UAAU0G,UAAY,WAEjC,MAAO,IAAI63B,GAAOl7B,UAAUlH,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKmH,MAAOnH,KAAKoH,SAKjEnH,KAAK+tC,QAAU5L,EAAO4L,QAyBtB5L,EAAOz+B,QAAU,WAKb3D,KAAKiD,KAAOm/B,EAAOuB,QAKnB3jC,KAAKmuC,KAAO,EAMZnuC,KAAKouC,WAEDpqC,UAAUK,OAAS,GAEnBrE,KAAKqnC,MAAM5jC,MAAMzD,KAAMgE,WAM3BhE,KAAKyE,QAAS,GAIlB29B,EAAOz+B,QAAQE,WAUXa,MAAO,SAAUijC,GAEb,GAAI/jC,GAAS5D,KAAKouC,QAAQtqC,OAW1B,OATsB,mBAAX6jC,IAAqC,OAAXA,EAEjCA,EAAS,GAAIvF,GAAOz+B,QAAQC,GAI5B+jC,EAAON,MAAMzjC,GAGV+jC,GAYXhjC,SAAU,SAAUJ,EAAGC,GAOnB,IAAK,GAHDH,GAASrE,KAAKouC,QAAQ/pC,OACtBO,GAAS,EAEJT,EAAI,GAAIU,EAAIR,EAAS,IAAKF,EAAIE,EAAQQ,EAAIV,EACnD,CACI,GAAIkqC,GAAKruC,KAAKouC,QAAQjqC,GAAGI,EACrB+pC,EAAKtuC,KAAKouC,QAAQjqC,GAAGK,EAErB+pC,EAAKvuC,KAAKouC,QAAQvpC,GAAGN,EACrBiqC,EAAKxuC,KAAKouC,QAAQvpC,GAAGL,GAEbA,GAAN8pC,GAAeE,EAAJhqC,GAAkBA,GAANgqC,GAAeF,EAAJ9pC,KAAkB+pC,EAAKF,IAAO7pC,EAAI8pC,IAAOE,EAAKF,GAAMD,EAAvC9pC,IAEjDK,GAAUA,GAIlB,MAAOA,IAsBXyiC,MAAO,SAAUzjC,GAKb,GAHA5D,KAAKmuC,KAAO,EACZnuC,KAAKouC,WAEDpqC,UAAUK,OAAS,EACvB,CAESvC,MAAM6kC,QAAQ/iC,KAEfA,EAAS9B,MAAM+B,UAAUC,MAAMC,KAAKC,WAMxC,KAAK,GAHDqwB,GAAKgY,OAAOG,UAGProC,EAAI,EAAGm3B,EAAM13B,EAAOS,OAAYi3B,EAAJn3B,EAASA,IAC9C,CACI,GAAyB,gBAAdP,GAAOO,GAClB,CACI,GAAID,GAAI,GAAIk+B,GAAOn+B,MAAML,EAAOO,GAAIP,EAAOO,EAAI,GAC/CA,SAIA,IAAID,GAAI,GAAIk+B,GAAOn+B,MAAML,EAAOO,GAAGI,EAAGX,EAAOO,GAAGK,EAGpDxE,MAAKouC,QAAQ9pC,KAAKJ,GAGdA,EAAEM,EAAI6vB,IAENA,EAAKnwB,EAAEM,GAIfxE,KAAKyuC,cAAcpa,GAGvB,MAAOr0B,OAYXyuC,cAAe,SAAUpa,GAOrB,IAAK,GALDqa,GACAC,EACAC,EACAznC,EAEKhD,EAAI,EAAGm3B,EAAMt7B,KAAKouC,QAAQ/pC,OAAYi3B,EAAJn3B,EAASA,IAEhDuqC,EAAK1uC,KAAKouC,QAAQjqC,GAIdwqC,EAFAxqC,IAAMm3B,EAAM,EAEPt7B,KAAKouC,QAAQ,GAIbpuC,KAAKouC,QAAQjqC,EAAI,GAG1ByqC,GAAcF,EAAGlqC,EAAI6vB,GAAOsa,EAAGnqC,EAAI6vB,IAAO,EAC1CltB,EAAQunC,EAAGnqC,EAAIoqC,EAAGpqC,EAClBvE,KAAKmuC,MAAQS,EAAYznC,CAG7B,OAAOnH,MAAKmuC,OAMpB/L,EAAOz+B,QAAQE,UAAUsB,YAAci9B,EAAOz+B,QAW9CwF,OAAOC,eAAeg5B,EAAOz+B,QAAQE,UAAW,UAE5CwF,IAAK,WACD,MAAOrJ,MAAKouC,SAGhB9kC,IAAK,SAAS1F,GAEI,MAAVA,EAEA5D,KAAKqnC,MAAMzjC,GAKX5D,KAAKqnC,WAkBjBpnC,KAAKsoB,SAAW,WAEZtoB,KAAKkM,uBAAuBpI,KAAM/D,MAElCA,KAAKoI,YAAa,EAQlBpI,KAAK0pB,UAAY,EAQjB1pB,KAAKgV,UAAY,EASjBhV,KAAKgtB,UAAY,EASjBhtB,KAAKooB,gBASLpoB,KAAKuP,KAAO,SASZvP,KAAKwP,UAAYvP,KAAKI,WAAWC,OASjCN,KAAK6uC,YAAc,KASnB7uC,KAAK8mB,UAQL9mB,KAAK0J,QAAS,EAQd1J,KAAK8uC,cAAgB,EAErB9uC,KAAK+uC,aAAe,GAAI9uC,MAAKiH,UAAU,EAAE,EAAE,EAAE,GAS7ClH,KAAKwJ,OAAQ,EASbxJ,KAAKgvC,YAAa,EASlBhvC,KAAKivC,mBAAoB,GAK7BhvC,KAAKsoB,SAAS1kB,UAAYsF,OAAOkD,OAAQpM,KAAKkM,uBAAuBtI,WACrE5D,KAAKsoB,SAAS1kB,UAAUsB,YAAclF,KAAKsoB,SAa3Cpf,OAAOC,eAAenJ,KAAKsoB,SAAS1kB,UAAW,iBAC3CwF,IAAK,WACD,MAAQrJ,MAAKiJ,gBAEjBK,IAAK,SAASC,GACVvJ,KAAKiJ,eAAiBM,EAEnBvJ,KAAKiJ,eAGJjJ,KAAKgK,yBAILhK,KAAKkvC,sBACLlvC,KAAKwJ,OAAQ,MAezBvJ,KAAKsoB,SAAS1kB,UAAUsrC,UAAY,SAASn6B,EAAWoR,EAAOpe,GAM3D,GAJAhI,KAAKgV,UAAYA,GAAa,EAC9BhV,KAAKgtB,UAAY5G,GAAS,EAC1BpmB,KAAKitB,UAAajpB,UAAUK,OAAS,EAAK,EAAI2D,EAE3ChI,KAAK6uC,YACR,CACI,GAAG7uC,KAAK6uC,YAAYpmB,MAAM7kB,OAAOS,OAI7B,MADArE,MAAKovC,UAAW,GAAInvC,MAAK0D,QAAS3D,KAAK6uC,YAAYpmB,MAAM7kB,OAAOE,MAAM,MAC/D9D,IAIXA,MAAK6uC,YAAY75B,UAAYhV,KAAKgV,UAClChV,KAAK6uC,YAAY7hB,UAAYhtB,KAAKgtB,UAClChtB,KAAK6uC,YAAY5hB,UAAYjtB,KAAKitB,UAItC,MAAOjtB,OAWXC,KAAKsoB,SAAS1kB,UAAUu2B,OAAS,SAAS71B,EAAGC,GAIzC,MAFAxE,MAAKovC,UAAU,GAAInvC,MAAK0D,SAASY,EAAEC,KAE5BxE,MAYXC,KAAKsoB,SAAS1kB,UAAUw2B,OAAS,SAAS91B,EAAGC,GAKzC,MAHAxE,MAAK6uC,YAAYpmB,MAAM7kB,OAAOU,KAAKC,EAAGC,GACtCxE,KAAKwJ,OAAQ,EAENxJ,MAcXC,KAAKsoB,SAAS1kB,UAAUw3B,iBAAmB,SAAS9Q,EAAKC,EAAKC,EAAKC,GAE3D1qB,KAAK6uC,YAEuC,IAAzC7uC,KAAK6uC,YAAYpmB,MAAM7kB,OAAOS,SAAarE,KAAK6uC,YAAYpmB,MAAM7kB,QAAU,EAAE,IAIjF5D,KAAKo6B,OAAO,EAAE,EAGlB,IAAIpP,GACJC,EACAnN,EAAI,GACJla,EAAS5D,KAAK6uC,YAAYpmB,MAAM7kB,MACX,KAAlBA,EAAOS,QAAarE,KAAKo6B,OAAO,EAAG,EAOtC,KAAK,GAJD/P,GAAQzmB,EAAOA,EAAOS,OAAO,GAC7BimB,EAAQ1mB,EAAOA,EAAOS,OAAO,GAE7BQ,EAAI,EACCV,EAAI,EAAQ2Z,GAAL3Z,EAAQA,IAEpBU,EAAIV,EAAI2Z,EAERkN,EAAKX,GAAWE,EAAMF,GAASxlB,EAC/BomB,EAAKX,GAAWE,EAAMF,GAASzlB,EAE/BjB,EAAOU,KAAM0mB,GAAST,GAASE,EAAMF,GAAO1lB,EAAOmmB,GAAMnmB,EAC5ComB,GAAST,GAASE,EAAMF,GAAO3lB,EAAOomB,GAAMpmB,EAM7D,OAFA7E,MAAKwJ,OAAQ,EAENxJ,MAeXC,KAAKsoB,SAAS1kB,UAAUo3B,cAAgB,SAAS1Q,EAAKC,EAAK6kB,EAAMC,EAAM7kB,EAAKC,GAEpE1qB,KAAK6uC,YAEuC,IAAzC7uC,KAAK6uC,YAAYpmB,MAAM7kB,OAAOS,SAAarE,KAAK6uC,YAAYpmB,MAAM7kB,QAAU,EAAE,IAIjF5D,KAAKo6B,OAAO,EAAE,EAgBlB,KAAK,GAZLmV,GACAC,EACAC,EACAC,EACAC,EALI7xB,EAAI,GAMRla,EAAS5D,KAAK6uC,YAAYpmB,MAAM7kB,OAE5BymB,EAAQzmB,EAAOA,EAAOS,OAAO,GAC7BimB,EAAQ1mB,EAAOA,EAAOS,OAAO,GAE7BQ,EAAI,EAECV,EAAE,EAAM2Z,GAAH3Z,EAAMA,IAEhBU,EAAIV,EAAI2Z,EAERyxB,EAAM,EAAI1qC,EACV2qC,EAAMD,EAAKA,EACXE,EAAMD,EAAMD,EAEZG,EAAK7qC,EAAIA,EACT8qC,EAAKD,EAAK7qC,EAEVjB,EAAOU,KAAMmrC,EAAMplB,EAAQ,EAAImlB,EAAM3qC,EAAI0lB,EAAM,EAAIglB,EAAKG,EAAKL,EAAOM,EAAKllB,EAC5DglB,EAAMnlB,EAAQ,EAAIklB,EAAM3qC,EAAI2lB,EAAM,EAAI+kB,EAAKG,EAAKJ,EAAOK,EAAKjlB,EAK7E,OAFA1qB,MAAKwJ,OAAQ,EAENxJ,MAgBXC,KAAKsoB,SAAS1kB,UAAU+rC,MAAQ,SAASvoC,EAAIC,EAAIgJ,EAAIC,EAAI9I,GAEjDzH,KAAK6uC,YAEuC,IAAzC7uC,KAAK6uC,YAAYpmB,MAAM7kB,OAAOS,QAE7BrE,KAAK6uC,YAAYpmB,MAAM7kB,OAAOU,KAAK+C,EAAIC,GAK3CtH,KAAKo6B,OAAO/yB,EAAIC,EAGpB,IAAI1D,GAAS5D,KAAK6uC,YAAYpmB,MAAM7kB,OAChCymB,EAAQzmB,EAAOA,EAAOS,OAAO,GAC7BimB,EAAQ1mB,EAAOA,EAAOS,OAAO,GAC7BoC,EAAK6jB,EAAQhjB,EACbR,EAAKujB,EAAQhjB,EACbmlB,EAAKjc,EAAOjJ,EACZmlB,EAAKnc,EAAOjJ,EACZwoC,EAAK3tC,KAAKirB,IAAI1mB,EAAKgmB,EAAK3lB,EAAK0lB,EAGjC,IAAS,KAALqjB,GAA0B,IAAXpoC,GAEX7D,EAAOA,EAAOS,OAAO,KAAOgD,GAAMzD,EAAOA,EAAOS,OAAO,KAAOiD,IAG9D1D,EAAOU,KAAK+C,EAAIC,OAIxB,CACI,GAAIwoC,GAAKrpC,EAAKA,EAAKK,EAAKA,EACpBipC,EAAKvjB,EAAKA,EAAKC,EAAKA,EACpBujB,EAAKvpC,EAAK+lB,EAAK1lB,EAAK2lB,EACpBwjB,EAAKxoC,EAASvF,KAAKgrB,KAAK4iB,GAAMD,EAC9BK,EAAKzoC,EAASvF,KAAKgrB,KAAK6iB,GAAMF,EAC9BM,EAAKF,EAAKD,EAAKF,EACfM,EAAKF,EAAKF,EAAKD,EACftxB,EAAKwxB,EAAKxjB,EAAKyjB,EAAKppC,EACpB4X,EAAKuxB,EAAKzjB,EAAK0jB,EAAKzpC,EACpBsY,EAAKjY,GAAMopC,EAAKC,GAChBnxB,EAAKvY,GAAMypC,EAAKC,GAChBE,EAAK5jB,GAAMwjB,EAAKG,GAChBE,EAAK9jB,GAAMyjB,EAAKG,GAChBG,EAAaruC,KAAKsnC,MAAMxqB,EAAKN,EAAIK,EAAKN,GACtC+xB,EAAatuC,KAAKsnC,MAAM8G,EAAK5xB,EAAI2xB,EAAK5xB,EAE1Cze,MAAKw6B,IAAI/b,EAAKpX,EAAIqX,EAAKpX,EAAIG,EAAQ8oC,EAAYC,EAAU1pC,EAAK0lB,EAAKC,EAAKhmB,GAK5E,MAFAzG,MAAKwJ,OAAQ,EAENxJ,MAeXC,KAAKsoB,SAAS1kB,UAAU22B,IAAM,SAAS/b,EAAIC,EAAIjX,EAAQ8oC,EAAYC,EAAUC,GAEzE,GAAIC,GAASjyB,EAAKvc,KAAKqE,IAAIgqC,GAAc9oC,EACrCkpC,EAASjyB,EAAKxc,KAAKsE,IAAI+pC,GAAc9oC,EAErC7D,EAAS5D,KAAK6uC,YAAYpmB,MAAM7kB,MAYpC,IAVqB,IAAlBA,EAAOS,QAENrE,KAAKo6B,OAAOsW,EAAQC,GACpB/sC,EAAS5D,KAAK6uC,YAAYpmB,MAAM7kB,SAE3BA,EAAOA,EAAOS,OAAO,KAAOqsC,GAAU9sC,EAAOA,EAAOS,OAAO,KAAOssC,IAEvE/sC,EAAOU,KAAKosC,EAAQC,GAGpBJ,IAAeC,EAAS,MAAOxwC,OAE9BywC,GAA6BF,GAAZC,EAElBA,GAAsB,EAAVtuC,KAAKC,GAEZsuC,GAA+BD,GAAdD,IAEtBA,GAAwB,EAAVruC,KAAKC,GAGvB,IAAIyuC,GAAQH,EAAyC,IAAxBF,EAAaC,GAAiBA,EAAWD,EAClEM,EAAU3uC,KAAKirB,IAAIyjB,IAAmB,EAAV1uC,KAAKC,IAAY,EAEjD,IAAc,IAAVyuC,EAAc,MAAO5wC,KAYzB,KAAI,GAVA8wC,GAAQF,GAAY,EAALC,GACfE,EAAe,EAAND,EAETE,EAAS9uC,KAAKqE,IAAIuqC,GAClBG,EAAS/uC,KAAKsE,IAAIsqC,GAElBI,EAAWL,EAAO,EAElBM,EAAcD,EAAW,EAAMA,EAE3B/sC,EAAE,EAAM+sC,GAAH/sC,EAAaA,IAC1B,CACI,GAAIitC,GAAQjtC,EAAIgtC,EAAYhtC,EAGxBmC,EAAS,EAAUiqC,EAAcQ,EAASK,EAE1C7rC,EAAIrD,KAAKqE,IAAID,GACbkkC,GAAKtoC,KAAKsE,IAAIF,EAElB1C,GAAOU,MAAQ0sC,EAAUzrC,EAAM0rC,EAASzG,GAAO/iC,EAASgX,GACzCuyB,GAAUxG,EAAMyG,EAAS1rC,GAAOkC,EAASiX,GAK5D,MAFA1e,MAAKwJ,OAAQ,EAENxJ,MAYXC,KAAKsoB,SAAS1kB,UAAUwtC,UAAY,SAASjrB,EAAOpe,GAehD,MAbAhI,MAAKsxC,SAAU,EACftxC,KAAKypB,UAAYrD,GAAS,EAC1BpmB,KAAK0pB,UAAuBjc,SAAVzF,EAAuB,EAAIA,EAE1ChI,KAAK6uC,aAED7uC,KAAK6uC,YAAYpmB,MAAM7kB,OAAOS,QAAU,IAEvCrE,KAAK6uC,YAAY/6B,KAAO9T,KAAKsxC,QAC7BtxC,KAAK6uC,YAAYplB,UAAYzpB,KAAKypB,UAClCzpB,KAAK6uC,YAAYnlB,UAAY1pB,KAAK0pB,WAGnC1pB,MASXC,KAAKsoB,SAAS1kB,UAAU0tC,QAAU,WAM9B,MAJAvxC,MAAKsxC,SAAU,EACftxC,KAAKypB,UAAY,KACjBzpB,KAAK0pB,UAAY,EAEV1pB,MAYXC,KAAKsoB,SAAS1kB,UAAU2tC,SAAW,SAAUjtC,EAAGC,EAAG2C,EAAOC,GAItD,MAFApH,MAAKovC,UAAU,GAAInvC,MAAKiH,UAAU3C,EAAEC,EAAG2C,EAAOC,IAEvCpH,MAYXC,KAAKsoB,SAAS1kB,UAAU4tC,gBAAkB,SAAUltC,EAAGC,EAAG2C,EAAOC,EAAQK,GAIrE,MAFAzH,MAAKovC,UAAU,GAAInvC,MAAKuH,iBAAiBjD,EAAGC,EAAG2C,EAAOC,EAAQK,IAEvDzH,MAYXC,KAAKsoB,SAAS1kB,UAAU6tC,WAAa,SAASntC,EAAGC,EAAGiD,GAIhD,MAFAzH,MAAKovC,UAAU,GAAInvC,MAAK+mC,OAAOziC,EAAEC,EAAGiD,IAE7BzH,MAaXC,KAAKsoB,SAAS1kB,UAAU8tC,YAAc,SAASptC,EAAGC,EAAG2C,EAAOC,GAIxD,MAFApH,MAAKovC,UAAU,GAAInvC,MAAK+tC,QAAQzpC,EAAGC,EAAG2C,EAAOC,IAEtCpH,MAUXC,KAAKsoB,SAAS1kB,UAAU+tC,YAAc,SAASC,GAI3C,MAFKA,aAAgB/vC,SAAO+vC,EAAO/vC,MAAM+B,UAAUC,MAAMC,KAAKC,YAC9DhE,KAAKovC,UAAU,GAAInvC,MAAK0D,QAAQkuC,IACzB7xC,MASXC,KAAKsoB,SAAS1kB,UAAUisB,MAAQ,WAS5B,MAPA9vB,MAAKgV,UAAY,EACjBhV,KAAKsxC,SAAU,EAEftxC,KAAKwJ,OAAQ,EACbxJ,KAAKmoB,YAAa,EAClBnoB,KAAKooB,gBAEEpoB,MAYXC,KAAKsoB,SAAS1kB,UAAU6G,gBAAkB,SAAS7H,EAAY8H,GAE3D9H,EAAaA,GAAc,CAE3B,IAAIgI,GAAS7K,KAAKuK,YAEdo0B,EAAe,GAAI1+B,MAAKo4B,aAAaxtB,EAAO1D,MAAQtE,EAAYgI,EAAOzD,OAASvE,GAEhFgJ,EAAU5L,KAAKmS,QAAQqB,WAAWkrB,EAAatrB,OAAQ1I,EAS3D,OARAkB,GAAQ6D,YAAY7M,WAAaA,EAEjC87B,EAAa7tB,QAAQ1K,MAAMvD,EAAYA,GAEvC87B,EAAa7tB,QAAQ3K,WAAW0E,EAAOtG,GAAGsG,EAAOrG,GAEjDvE,KAAKw4B,eAAenS,eAAetmB,KAAM2+B,EAAa7tB,SAE/CjF,GAUX5L,KAAKsoB,SAAS1kB,UAAU8H,aAAe,SAASJ,GAG5C,GAAGvL,KAAKiI,WAAY,GAAwB,IAAfjI,KAAKgI,OAAehI,KAAK0J,UAAW,EAAjE,CAEA,GAAG1J,KAAKiJ,eAkBJ,OAfGjJ,KAAKwJ,OAASxJ,KAAKivC,qBAGlBjvC,KAAKgK,wBAGLhK,KAAK8xC,4BAEL9xC,KAAKivC,mBAAoB,EACzBjvC,KAAKwJ,OAAQ,GAGjBxJ,KAAKwL,cAAcjD,WAAavI,KAAKuI,eACrCtI,MAAKyL,OAAO7H,UAAU8H,aAAa5H,KAAK/D,KAAKwL,cAAeD,EAa5D,IAPAA,EAAcqD,YAAYI,OAC1BzD,EAAckjB,iBAAiByB,aAAalwB,KAAKwP,WAE9CxP,KAAKgJ,OAAMuC,EAAc0D,YAAYC,SAASlP,KAAKgJ,MAAOuC,GAC1DvL,KAAK2J,UAAS4B,EAAcuD,cAAcC,WAAW/O,KAAK8J,cAG1D9J,KAAKwP,YAAcjE,EAAcqD,YAAYiC,iBAChD,CACItF,EAAcqD,YAAYiC,iBAAmB7Q,KAAKwP,SAClD,IAAIshB,GAAiB7wB,KAAKuwB,gBAAgBjlB,EAAcqD,YAAYiC,iBACpEtF,GAAcqD,YAAYnD,GAAGslB,UAAUD,EAAe,GAAIA,EAAe,IAa7E,GATG9wB,KAAKgvC,aAEJhvC,KAAKwJ,OAAQ,EACbxJ,KAAKgvC,YAAa,GAGtB/uC,KAAKomB,cAAcC,eAAetmB,KAAMuL,GAGrCvL,KAAKoM,SAAS/H,OACjB,CACIkH,EAAcqD,YAAYQ,OAG1B,KAAI,GAAIjL,GAAE,EAAGU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAEtCnE,KAAKoM,SAASjI,GAAGwH,aAAaJ,EAGlCA,GAAcqD,YAAYI,OAG3BhP,KAAK2J,UAAS4B,EAAcuD,cAAcQ,YAC1CtP,KAAKgJ,OAAMuC,EAAc0D,YAAYI,QAAQrP,KAAKmP,KAAM5D,GAE3DA,EAAcojB,YAEdpjB,EAAcqD,YAAYQ,UAWlCnP,KAAKsoB,SAAS1kB,UAAU+H,cAAgB,SAASL,GAG7C,GAAGvL,KAAKiI,WAAY,GAAwB,IAAfjI,KAAKgI,OAAehI,KAAK0J,UAAW,EAAjE,CAEA,GAAG1J,KAAKiJ,eAgBJ,OAdGjJ,KAAKwJ,OAASxJ,KAAKivC,qBAElBjvC,KAAKgK,wBAGLhK,KAAK8xC,4BAEL9xC,KAAKivC,mBAAoB,EACzBjvC,KAAKwJ,OAAQ,GAGjBxJ,KAAKwL,cAAcxD,MAAQhI,KAAKgI,UAChC/H,MAAKyL,OAAO7H,UAAU+H,cAAc7H,KAAK/D,KAAKwL,cAAeD,EAM7D,IAAIuF,GAAUvF,EAAcuF,QACxBgC,EAAY9S,KAAK0I,cAElB1I,MAAKwP,YAAcjE,EAAcsF,mBAEhCtF,EAAcsF,iBAAmB7Q,KAAKwP,UACtCsB,EAAQC,yBAA2B9Q,KAAK+Q,iBAAiBzF,EAAcsF,mBAGxE7Q,KAAKgJ,OAEJuC,EAAc0D,YAAYC,SAASlP,KAAKgJ,MAAOuC,EAGnD,IAAI1I,GAAa0I,EAAc1I,UAC/BiO,GAAQM,aAAa0B,EAAUzN,EAAIxC,EACdiQ,EAAUxN,EAAIzC,EACdiQ,EAAUvN,EAAI1C,EACdiQ,EAAUtN,EAAI3C,EACdiQ,EAAUrN,GAAK5C,EACfiQ,EAAUpN,GAAK7C,GAEpC5C,KAAKw4B,eAAenS,eAAetmB,KAAM8Q,EAGzC,KAAI,GAAI3M,GAAE,EAAGU,EAAE7E,KAAKoM,SAAS/H,OAAUQ,EAAFV,EAAKA,IAEtCnE,KAAKoM,SAASjI,GAAGyH,cAAcL,EAGhCvL,MAAKgJ,OAEJuC,EAAc0D,YAAYI,QAAQ9D,KAW9CtL,KAAKsoB,SAAS1kB,UAAU0G,UAAY,SAAU1D,GAG1C,GAAG7G,KAAK0J,OAAO,MAAOzJ,MAAKsH,cAExBvH,MAAKwJ,QAEJxJ,KAAK+xC,oBACL/xC,KAAKgvC,YAAa,EAClBhvC,KAAKivC,mBAAoB,EACzBjvC,KAAKwJ,OAAQ,EAGjB,IAAIqB,GAAS7K,KAAK+uC,aAEd7+B,EAAKrF,EAAOtG,EACZ4L,EAAKtF,EAAO1D,MAAQ0D,EAAOtG,EAE3B6L,EAAKvF,EAAOrG,EACZ6L,EAAKxF,EAAOzD,OAASyD,EAAOrG,EAE5BkE,EAAiB7B,GAAU7G,KAAK0I,eAEhCrD,EAAIqD,EAAerD,EACnBC,EAAIoD,EAAepD,EACnBC,EAAImD,EAAenD,EACnBC,EAAIkD,EAAelD,EACnBC,EAAKiD,EAAejD,GACpBC,EAAKgD,EAAehD,GAEpB2B,EAAKhC,EAAI8K,EAAK5K,EAAI8K,EAAK5K,EACvB6B,EAAK9B,EAAI6K,EAAK/K,EAAI6K,EAAKzK,EAEvB4K,EAAKjL,EAAI6K,EAAK3K,EAAI8K,EAAK5K,EACvB8K,EAAK/K,EAAI6K,EAAK/K,EAAI4K,EAAKxK,EAEvB8K,EAAKnL,EAAI6K,EAAK3K,EAAI6K,EAAK3K,EACvBgL,EAAKjL,EAAI4K,EAAK9K,EAAI4K,EAAKxK,EAEvBgL,EAAMrL,EAAI8K,EAAK5K,EAAI6K,EAAK3K,EACxBkL,EAAMnL,EAAI4K,EAAK9K,EAAI6K,EAAKzK,EAExB8I,EAAOnH,EACPoH,EAAOnH,EAEP+G,EAAOhH,EACPkH,EAAOjH,CAwBX,OAtBA+G,GAAYA,EAALiC,EAAYA,EAAKjC,EACxBA,EAAYA,EAALmC,EAAYA,EAAKnC,EACxBA,EAAYA,EAALqC,EAAYA,EAAKrC,EAExBE,EAAYA,EAALgC,EAAYA,EAAKhC,EACxBA,EAAYA,EAALkC,EAAYA,EAAKlC,EACxBA,EAAYA,EAALoC,EAAYA,EAAKpC,EAExBC,EAAO8B,EAAK9B,EAAO8B,EAAK9B,EACxBA,EAAOgC,EAAKhC,EAAOgC,EAAKhC,EACxBA,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EAExBC,EAAO8B,EAAK9B,EAAO8B,EAAK9B,EACxBA,EAAOgC,EAAKhC,EAAOgC,EAAKhC,EACxBA,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EAExBzO,KAAK8I,QAAQvE,EAAI8J,EACjBrO,KAAK8I,QAAQ3B,MAAQqH,EAAOH,EAE5BrO,KAAK8I,QAAQtE,EAAI+J,EACjBvO,KAAK8I,QAAQ1B,OAASqH,EAAOF,EAErBvO,KAAK8I,SAQjB7I,KAAKsoB,SAAS1kB,UAAUkuC,kBAAoB,WAExC,GAAI1jC,GAAOC,IACPE,GAAQF,IAERC,EAAOD,IACPG,GAAQH,GAEZ,IAAGtO,KAAKooB,aAAa/jB,OAIjB,IAAK,GAFDokB,GAAO7kB,EAAQW,EAAGC,EAAG6gB,EAAGoV,EAEnBt2B,EAAI,EAAGA,EAAInE,KAAKooB,aAAa/jB,OAAQF,IAAK,CAC/C,GAAIyS,GAAO5W,KAAKooB,aAAajkB,GACzBlB,EAAO2T,EAAK3T,KACZ+R,EAAY4B,EAAK5B,SAIrB,IAHAyT,EAAQ7R,EAAK6R,MAGVxlB,IAAShD,KAAKsoB,SAASQ,MAAQ9lB,IAAShD,KAAKsoB,SAASa,KAErD7kB,EAAIkkB,EAAMlkB,EAAIyQ,EAAU,EACxBxQ,EAAIikB,EAAMjkB,EAAIwQ,EAAU,EACxBqQ,EAAIoD,EAAMthB,MAAQ6N,EAClBylB,EAAIhS,EAAMrhB,OAAS4N,EAEnB3G,EAAWA,EAAJ9J,EAAWA,EAAI8J,EACtBG,EAAOjK,EAAI8gB,EAAI7W,EAAOjK,EAAI8gB,EAAI7W,EAE9BD,EAAWA,EAAJ/J,EAAWA,EAAI+J,EACtBE,EAAOjK,EAAIi2B,EAAIhsB,EAAOjK,EAAIi2B,EAAIhsB,MAE7B,IAAGxL,IAAShD,KAAKsoB,SAASU,KAE3B1kB,EAAIkkB,EAAMlkB,EACVC,EAAIikB,EAAMjkB,EACV6gB,EAAIoD,EAAMhhB,OAASuN,EAAU,EAC7BylB,EAAIhS,EAAMhhB,OAASuN,EAAU,EAE7B3G,EAAeA,EAAR9J,EAAI8gB,EAAW9gB,EAAI8gB,EAAIhX,EAC9BG,EAAOjK,EAAI8gB,EAAI7W,EAAOjK,EAAI8gB,EAAI7W,EAE9BD,EAAeA,EAAR/J,EAAIi2B,EAAWj2B,EAAIi2B,EAAIlsB,EAC9BE,EAAOjK,EAAIi2B,EAAIhsB,EAAOjK,EAAIi2B,EAAIhsB,MAE7B,IAAGxL,IAAShD,KAAKsoB,SAASW,KAE3B3kB,EAAIkkB,EAAMlkB,EACVC,EAAIikB,EAAMjkB,EACV6gB,EAAIoD,EAAMthB,MAAQ6N,EAAU,EAC5BylB,EAAIhS,EAAMrhB,OAAS4N,EAAU,EAE7B3G,EAAeA,EAAR9J,EAAI8gB,EAAW9gB,EAAI8gB,EAAIhX,EAC9BG,EAAOjK,EAAI8gB,EAAI7W,EAAOjK,EAAI8gB,EAAI7W,EAE9BD,EAAeA,EAAR/J,EAAIi2B,EAAWj2B,EAAIi2B,EAAIlsB,EAC9BE,EAAOjK,EAAIi2B,EAAIhsB,EAAOjK,EAAIi2B,EAAIhsB,MAGlC,CAEI7K,EAAS6kB,EAAM7kB,MAEf,KAAK,GAAIiB,GAAI,EAAGA,EAAIjB,EAAOS,OAAQQ,GAAG,EAGlCN,EAAIX,EAAOiB,GACXL,EAAIZ,EAAOiB,EAAE,GACbwJ,EAAqBA,EAAd9J,EAAEyQ,EAAmBzQ,EAAEyQ,EAAY3G,EAC1CG,EAAOjK,EAAEyQ,EAAYxG,EAAOjK,EAAEyQ,EAAYxG,EAE1CD,EAAqBA,EAAd/J,EAAEwQ,EAAmBxQ,EAAEwQ,EAAYzG,EAC1CE,EAAOjK,EAAEwQ,EAAYvG,EAAOjK,EAAEwQ,EAAYvG,OAOtDJ,GAAO,EACPG,EAAO,EACPD,EAAO,EACPE,EAAO,CAGX,IAAI+nB,GAAUx2B,KAAK8uC,aAEnB9uC,MAAK+uC,aAAaxqC,EAAI8J,EAAOmoB,EAC7Bx2B,KAAK+uC,aAAa5nC,MAASqH,EAAOH,EAAkB,EAAVmoB,EAE1Cx2B,KAAK+uC,aAAavqC,EAAI+J,EAAOioB,EAC7Bx2B,KAAK+uC,aAAa3nC,OAAUqH,EAAOF,EAAkB,EAAVioB,GAS/Cv2B,KAAKsoB,SAAS1kB,UAAUmG,sBAAwB,WAE5C,GAAIa,GAAS7K,KAAKwK,gBAElB,IAAIxK,KAAKwL,cAYLxL,KAAKwL,cAAcoc,OAAO9b,OAAOjB,EAAO1D,MAAO0D,EAAOzD,YAX1D,CACI,GAAIu3B,GAAe,GAAI1+B,MAAKo4B,aAAaxtB,EAAO1D,MAAO0D,EAAOzD,QAC1DyE,EAAU5L,KAAKmS,QAAQqB,WAAWkrB,EAAatrB,OAEnDrT,MAAKwL,cAAgB,GAAIvL,MAAKyL,OAAOG,GACrC7L,KAAKwL,cAAcoc,OAAS+W,EAE5B3+B,KAAKwL,cAAc9C,eAAiB1I,KAAK0I,eAQ7C1I,KAAKwL,cAAcS,OAAO1H,IAAOsG,EAAOtG,EAAIsG,EAAO1D,OACnDnH,KAAKwL,cAAcS,OAAOzH,IAAOqG,EAAOrG,EAAIqG,EAAOzD,QAGnDpH,KAAKwL,cAAcoc,OAAO9W,QAAQ3K,WAAW0E,EAAOtG,GAAGsG,EAAOrG,GAG9DxE,KAAKuI,WAAa,EAGlBtI,KAAKw4B,eAAenS,eAAetmB,KAAMA,KAAKwL,cAAcoc,OAAO9W,SACnE9Q,KAAKwL,cAAcxD,MAAQhI,KAAKgI,OASpC/H,KAAKsoB,SAAS1kB,UAAUiuC,0BAA4B,WAEhD,GAAIE,GAAehyC,KAAKwL,cACpBK,EAAUmmC,EAAanmC,QACvBwH,EAAS2+B,EAAapqB,OAAOvU,MAEjCxH,GAAQ6D,YAAYvI,MAAQkM,EAAOlM,MACnC0E,EAAQ6D,YAAYtI,OAASiM,EAAOjM,OACpCyE,EAAQ+E,KAAKzJ,MAAQ0E,EAAQkE,MAAM5I,MAAQkM,EAAOlM,MAClD0E,EAAQ+E,KAAKxJ,OAASyE,EAAQkE,MAAM3I,OAASiM,EAAOjM,OAEpD4qC,EAAa1lC,OAAS+G,EAAOlM,MAC7B6qC,EAAazlC,QAAU8G,EAAOjM,OAG9ByE,EAAQ6D,YAAYlG,SAQxBvJ,KAAKsoB,SAAS1kB,UAAUqrC,oBAAsB,WAE1ClvC,KAAKwL,cAAcK,QAAQK,SAAQ,GAInClM,KAAKwL,cAAgB,MAUzBvL,KAAKsoB,SAAS1kB,UAAUurC,UAAY,SAAS3mB,GAEtCzoB,KAAK6uC,aAGD7uC,KAAK6uC,YAAYpmB,MAAM7kB,OAAOS,QAAU,GAAErE,KAAKooB,aAAatP,MAGnE9Y,KAAK6uC,YAAc,IAEnB,IAAIj4B,GAAO,GAAI3W,MAAKgyC,aAAajyC,KAAKgV,UAAWhV,KAAKgtB,UAAWhtB,KAAKitB,UAAWjtB,KAAKypB,UAAWzpB,KAAK0pB,UAAW1pB,KAAKsxC,QAAS7oB,EAY/H,OAVAzoB,MAAKooB,aAAa9jB,KAAKsS,GAEpBA,EAAK3T,OAAShD,KAAKsoB,SAASC,OAE3B5R,EAAK6R,MAAMhkB,OAASzE,KAAKsxC,QACzBtxC,KAAK6uC,YAAcj4B,GAGvB5W,KAAKwJ,OAAQ,EAENoN,GASX3W,KAAKgyC,aAAe,SAASj9B,EAAWgY,EAAWC,EAAWxD,EAAWC,EAAW5V,EAAM2U,GAEtFzoB,KAAKgV,UAAYA,EACjBhV,KAAKgtB,UAAYA,EACjBhtB,KAAKitB,UAAYA,EAEjBjtB,KAAKypB,UAAYA,EACjBzpB,KAAK0pB,UAAYA,EACjB1pB,KAAK8T,KAAOA,EAEZ9T,KAAKyoB,MAAQA,EACbzoB,KAAKiD,KAAOwlB,EAAMxlB,MAItBhD,KAAKsoB,SAASC,KAAO,EACrBvoB,KAAKsoB,SAASQ,KAAO,EACrB9oB,KAAKsoB,SAASU,KAAO,EACrBhpB,KAAKsoB,SAASW,KAAO,EACrBjpB,KAAKsoB,SAASa,KAAO,EAErBnpB,KAAK0D,QAAQE,UAAUZ,KAAOhD,KAAKsoB,SAASC,KAC5CvoB,KAAKiH,UAAUrD,UAAUZ,KAAOhD,KAAKsoB,SAASQ,KAC9C9oB,KAAK+mC,OAAOnjC,UAAUZ,KAAOhD,KAAKsoB,SAASU,KAC3ChpB,KAAK+tC,QAAQnqC,UAAUZ,KAAOhD,KAAKsoB,SAASW,KAC5CjpB,KAAKuH,iBAAiB3D,UAAUZ,KAAOhD,KAAKsoB,SAASa,KAsBrDgZ,EAAO8P,OAAS,SAAUC,EAAMjsC,EAAI3B,EAAGC,EAAG2C,EAAOC,GAK7CpH,KAAKmyC,KAAOA,EAKZnyC,KAAKoyC,MAAQD,EAAKC,MAMlBpyC,KAAKkG,GAAK,EASVlG,KAAKyC,KAAO,GAAI2/B,GAAOl7B,UAAU3C,EAAGC,EAAG2C,EAAOC,GAK9CpH,KAAKqyC,WAAa,GAAIjQ,GAAOl7B,UAAU3C,EAAGC,EAAG2C,EAAOC,GASpDpH,KAAK6K,OAAS,GAAIu3B,GAAOl7B,UAAU3C,EAAGC,EAAG2C,EAAOC,GAKhDpH,KAAKsyC,SAAW,KAMhBtyC,KAAKiI,SAAU,EAMfjI,KAAKuyC,SAAU,EAKfvyC,KAAKwyC,SAAYjuC,GAAG,EAAOC,GAAG,GAM9BxE,KAAK+J,OAAS,KAOd/J,KAAKyyC,MAAQ,EAObzyC,KAAK0yC,UAAY,GAAItQ,GAAOn+B,MAK5BjE,KAAKiwB,cAAgB,KAKrBjwB,KAAKoG,MAAQ,KAKbpG,KAAK2yC,gBAAkB,GAAIvQ,GAAOn+B,OAQtCm+B,EAAO8P,OAAOU,cAAgB,EAM9BxQ,EAAO8P,OAAOW,kBAAoB,EAMlCzQ,EAAO8P,OAAOY,eAAiB,EAM/B1Q,EAAO8P,OAAOa,qBAAuB,EAErC3Q,EAAO8P,OAAOruC,WAQVmvC,OAAQ,SAAUjpC,EAAQqJ,GAED,mBAAVA,KAAyBA,EAAQgvB,EAAO8P,OAAOU,eAE1D5yC,KAAK+J,OAASA,CAEd,IAAIkpC,EAEJ,QAAQ7/B,GAEJ,IAAKgvB,GAAO8P,OAAOW,kBACf,GAAIxtB,GAAIrlB,KAAKmH,MAAQ,EACjBszB,EAAIz6B,KAAKoH,OAAS,CACtBpH,MAAKsyC,SAAW,GAAIlQ,GAAOl7B,WAAWlH,KAAKmH,MAAQke,GAAK,GAAIrlB,KAAKoH,OAASqzB,GAAK,EAAQ,IAAJA,EAAUpV,EAAGoV,EAChG,MAEJ,KAAK2H,GAAO8P,OAAOY,eACfG,EAAS/wC,KAAKgT,IAAIlV,KAAKmH,MAAOnH,KAAKoH,QAAU,EAC7CpH,KAAKsyC,SAAW,GAAIlQ,GAAOl7B,WAAWlH,KAAKmH,MAAQ8rC,GAAU,GAAIjzC,KAAKoH,OAAS6rC,GAAU,EAAGA,EAAQA,EACpG,MAEJ,KAAK7Q,GAAO8P,OAAOa,qBACfE,EAAS/wC,KAAKgT,IAAIlV,KAAKmH,MAAOnH,KAAKoH,QAAU,EAC7CpH,KAAKsyC,SAAW,GAAIlQ,GAAOl7B,WAAWlH,KAAKmH,MAAQ8rC,GAAU,GAAIjzC,KAAKoH,OAAS6rC,GAAU,EAAGA,EAAQA,EACpG,MAEJ,KAAK7Q,GAAO8P,OAAOU,cACf5yC,KAAKsyC,SAAW,IAChB,MAEJ,SACItyC,KAAKsyC,SAAW,OAW5BY,SAAU,WAENlzC,KAAK+J,OAAS,MASlBopC,QAAS,SAAUljB,GAEfjwB,KAAKozC,YAAYlxC,KAAKwlC,MAAMzX,EAAc1rB,EAAIvE,KAAKyC,KAAK6lC,WAAYpmC,KAAKwlC,MAAMzX,EAAczrB,EAAIxE,KAAKyC,KAAK+lC,cAU/G6K,UAAW,SAAU9uC,EAAGC,GAEpBxE,KAAKozC,YAAYlxC,KAAKwlC,MAAMnjC,EAAIvE,KAAKyC,KAAK6lC,WAAYpmC,KAAKwlC,MAAMljC,EAAIxE,KAAKyC,KAAK+lC,cAQnFhvB,OAAQ,WAEAxZ,KAAK+J,QAEL/J,KAAKszC,eAGLtzC,KAAK6K,QAEL7K,KAAKuzC,cAGLvzC,KAAKuyC,SAELvyC,KAAKyC,KAAK4nC,QAGdrqC,KAAKiwB,cAActoB,SAASpD,GAAKvE,KAAKyC,KAAK8B,EAC3CvE,KAAKiwB,cAActoB,SAASnD,GAAKxE,KAAKyC,KAAK+B,GAS/C8uC,aAAc,WAEVtzC,KAAK2yC,gBACArL,SAAStnC,KAAK+J,QACdm/B,SACGlpC,KAAK+J,OAAO1B,OAASrI,KAAK+J,OAAO1B,OAAOK,eAAerD,EAAI,EAC3DrF,KAAK+J,OAAO1B,OAASrI,KAAK+J,OAAO1B,OAAOK,eAAelD,EAAI,GAG/DxF,KAAKsyC,UAELtyC,KAAKyyC,MAAQzyC,KAAK2yC,gBAAgBpuC,EAAIvE,KAAKyC,KAAK8B,EAE5CvE,KAAKyyC,MAAQzyC,KAAKsyC,SAASnM,KAE3BnmC,KAAKyC,KAAK8B,EAAIvE,KAAK2yC,gBAAgBpuC,EAAIvE,KAAKsyC,SAASnM,KAEhDnmC,KAAKyyC,MAAQzyC,KAAKsyC,SAASpM,QAEhClmC,KAAKyC,KAAK8B,EAAIvE,KAAK2yC,gBAAgBpuC,EAAIvE,KAAKsyC,SAASpM,OAGzDlmC,KAAKyyC,MAAQzyC,KAAK2yC,gBAAgBnuC,EAAIxE,KAAKyC,KAAK+B,EAE5CxE,KAAKyyC,MAAQzyC,KAAKsyC,SAAStK,IAE3BhoC,KAAKyC,KAAK+B,EAAIxE,KAAK2yC,gBAAgBnuC,EAAIxE,KAAKsyC,SAAStK,IAEhDhoC,KAAKyyC,MAAQzyC,KAAKsyC,SAASrK,SAEhCjoC,KAAKyC,KAAK+B,EAAIxE,KAAK2yC,gBAAgBnuC,EAAIxE,KAAKsyC,SAASrK,UAKzDjoC,KAAKyC,KAAK8B,EAAIvE,KAAK2yC,gBAAgBpuC,EAAIvE,KAAKyC,KAAK6lC,UACjDtoC,KAAKyC,KAAK+B,EAAIxE,KAAK2yC,gBAAgBnuC,EAAIxE,KAAKyC,KAAK+lC,aASzDgL,iBAAkB,WAEVxzC,KAAK6K,QAEL7K,KAAK6K,OAAOw8B,MAAMrnC,KAAKmyC,KAAKC,MAAMvnC,OAAOtG,EAAGvE,KAAKmyC,KAAKC,MAAMvnC,OAAOrG,EAAGxE,KAAKmyC,KAAKC,MAAMvnC,OAAO1D,MAAOnH,KAAKmyC,KAAKC,MAAMvnC,OAAOzD,SASnImsC,YAAa,WAETvzC,KAAKwyC,QAAQjuC,GAAI,EACjBvE,KAAKwyC,QAAQhuC,GAAI,EAGbxE,KAAKyC,KAAK8B,GAAKvE,KAAK6K,OAAOtG,IAE3BvE,KAAKwyC,QAAQjuC,GAAI,EACjBvE,KAAKyC,KAAK8B,EAAIvE,KAAK6K,OAAOtG,GAG1BvE,KAAKyC,KAAKyjC,OAASlmC,KAAK6K,OAAOq7B,QAE/BlmC,KAAKwyC,QAAQjuC,GAAI,EACjBvE,KAAKyC,KAAK8B,EAAIvE,KAAK6K,OAAOq7B,MAAQlmC,KAAKmH,OAGvCnH,KAAKyC,KAAK+B,GAAKxE,KAAK6K,OAAOm9B,MAE3BhoC,KAAKwyC,QAAQhuC,GAAI,EACjBxE,KAAKyC,KAAK+B,EAAIxE,KAAK6K,OAAOm9B,KAG1BhoC,KAAKyC,KAAKwlC,QAAUjoC,KAAK6K,OAAOo9B,SAEhCjoC,KAAKwyC,QAAQhuC,GAAI,EACjBxE,KAAKyC,KAAK+B,EAAIxE,KAAK6K,OAAOo9B,OAASjoC,KAAKoH,SAahDgsC,YAAa,SAAU7uC,EAAGC,GAEtBxE,KAAKyC,KAAK8B,EAAIA,EACdvE,KAAKyC,KAAK+B,EAAIA,EAEVxE,KAAK6K,QAEL7K,KAAKuzC,eAYbE,QAAS,SAAUtsC,EAAOC,GAEtBpH,KAAKyC,KAAK0E,MAAQA,EAClBnH,KAAKyC,KAAK2E,OAASA,GASvBihB,MAAO,WAEHroB,KAAK+J,OAAS,KACd/J,KAAKyC,KAAK8B,EAAI,EACdvE,KAAKyC,KAAK+B,EAAI,IAMtB49B,EAAO8P,OAAOruC,UAAUsB,YAAci9B,EAAO8P,OAO7C/oC,OAAOC,eAAeg5B,EAAO8P,OAAOruC,UAAW,KAE3CwF,IAAK,WACD,MAAOrJ,MAAKyC,KAAK8B,GAGrB+E,IAAK,SAAUC,GAEXvJ,KAAKyC,KAAK8B,EAAIgF,EAEVvJ,KAAK6K,QAEL7K,KAAKuzC,iBAWjBpqC,OAAOC,eAAeg5B,EAAO8P,OAAOruC,UAAW,KAE3CwF,IAAK,WACD,MAAOrJ,MAAKyC,KAAK+B,GAGrB8E,IAAK,SAAUC,GAEXvJ,KAAKyC,KAAK+B,EAAI+E,EAEVvJ,KAAK6K,QAEL7K,KAAKuzC,iBAWjBpqC,OAAOC,eAAeg5B,EAAO8P,OAAOruC,UAAW,YAE3CwF,IAAK,WAED,MADArJ,MAAK0yC,UAAUppC,IAAItJ,KAAKyC,KAAKy5B,QAASl8B,KAAKyC,KAAK05B,SACzCn8B,KAAK0yC,WAGhBppC,IAAK,SAAUC,GAEY,mBAAZA,GAAMhF,IAAqBvE,KAAKyC,KAAK8B,EAAIgF,EAAMhF,GACnC,mBAAZgF,GAAM/E,IAAqBxE,KAAKyC,KAAK+B,EAAI+E,EAAM/E,GAEtDxE,KAAK6K,QAEL7K,KAAKuzC,iBAWjBpqC,OAAOC,eAAeg5B,EAAO8P,OAAOruC,UAAW,SAE3CwF,IAAK,WACD,MAAOrJ,MAAKyC,KAAK0E,OAGrBmC,IAAK,SAAUC,GACXvJ,KAAKyC,KAAK0E,MAAQoC,KAU1BJ,OAAOC,eAAeg5B,EAAO8P,OAAOruC,UAAW,UAE3CwF,IAAK,WACD,MAAOrJ,MAAKyC,KAAK2E,QAGrBkC,IAAK,SAAUC,GACXvJ,KAAKyC,KAAK2E,OAASmC,KAkB3B64B,EAAOsR,MAAQ,WAKX1zC,KAAKmyC,KAAO,KAKZnyC,KAAKgpC,IAAM,KAKXhpC,KAAK2zC,KAAO,KAKZ3zC,KAAK4zC,OAAS,KAKd5zC,KAAK6zC,MAAQ,KAKb7zC,KAAK8zC,MAAQ,KAKb9zC,KAAK+zC,KAAO,KAKZ/zC,KAAKg0C,KAAO,KAKZh0C,KAAKi0C,MAAQ,KAKbj0C,KAAKoG,MAAQ,KAKbpG,KAAKsI,MAAQ,KAKbtI,KAAKk0C,KAAO,KAKZl0C,KAAKm0C,OAAS,KAKdn0C,KAAKoyC,MAAQ,KAKbpyC,KAAKo0C,UAAY,KAKjBp0C,KAAKq0C,QAAU,KAKfr0C,KAAKs0C,IAAM,MAIflS,EAAOsR,MAAM7vC,WAST0wC,QAAS,aAQTC,WAAY,aASZC,WAAY,aASZpoC,OAAQ,aAURmN,OAAQ,aAURvO,OAAQ,aAQRa,OAAQ,aAQR4oC,OAAQ,aAQRC,YAAa,aAQbC,SAAU,cAKdxS,EAAOsR,MAAM7vC,UAAUsB,YAAci9B,EAAOsR,MAkB5CtR,EAAOyS,aAAe,SAAU1C,EAAM2C,GAKlC90C,KAAKmyC,KAAOA,EAKZnyC,KAAK+0C,UAML/0C,KAAKg1C,cAAgB,KAEO,mBAAjBF,IAAiD,OAAjBA,IAEvC90C,KAAKg1C,cAAgBF,GAOzB90C,KAAKi1C,aAAc,EAMnBj1C,KAAKk1C,aAAc,EAMnBl1C,KAAKm1C,UAAW,EAMhBn1C,KAAKo1C,SAKLp1C,KAAK0kC,QAAU,GAKf1kC,KAAKq1C,eAAiB,KAKtBr1C,KAAKs1C,kBAAoB,KAKzBt1C,KAAKu1C,iBAAmB,KAKxBv1C,KAAKw1C,iBAAmB,KAKxBx1C,KAAKy1C,iBAAmB,KAKxBz1C,KAAK01C,iBAAmB,KAKxB11C,KAAK21C,oBAAsB,KAK3B31C,KAAK41C,qBAAuB,KAK5B51C,KAAK61C,qBAAuB,KAK5B71C,KAAK81C,iBAAmB,KAKxB91C,KAAK+1C,kBAAoB,KAKzB/1C,KAAKg2C,sBAAwB,KAK7Bh2C,KAAKi2C,mBAAqB,MAI9B7T,EAAOyS,aAAahxC,WAOhBqyC,KAAM,WAIFl2C,KAAKmyC,KAAKgE,QAAQnN,IAAIhpC,KAAKo2C,MAAOp2C,MAClCA,KAAKmyC,KAAKkE,SAASrN,IAAIhpC,KAAKs2C,OAAQt2C,MACpCA,KAAKmyC,KAAK4B,KAAKwC,eAAevN,IAAIhpC,KAAKw2C,aAAcx2C,MAE1B,OAAvBA,KAAKg1C,eAE6B,gBAAvBh1C,MAAKg1C,eAEZh1C,KAAKgpC,IAAI,UAAWhpC,KAAKg1C,eAAe,IAgBpDhM,IAAK,SAAUrmB,EAAK8zB,EAAOC,GAEE,mBAAdA,KAA6BA,GAAY,EAEpD,IAAIC,EA8BJ,OA5BIF,aAAiBrU,GAAOsR,MAExBiD,EAAWF,EAEW,gBAAVA,IAEZE,EAAWF,EACXE,EAASxE,KAAOnyC,KAAKmyC,MAEC,kBAAVsE,KAEZE,EAAW,GAAIF,GAAMz2C,KAAKmyC,OAG9BnyC,KAAK+0C,OAAOpyB,GAAOg0B,EAEfD,IAEI12C,KAAKmyC,KAAKyE,SAEV52C,KAAKoP,MAAMuT,GAIX3iB,KAAKg1C,cAAgBryB,GAItBg0B,GASXE,OAAQ,SAAUl0B,GAEV3iB,KAAK0kC,UAAY/hB,IAEjB3iB,KAAK82C,gBAAkB,KAEvB92C,KAAKq1C,eAAiB,KACtBr1C,KAAKi2C,mBAAqB,KAE1Bj2C,KAAKs1C,kBAAoB,KACzBt1C,KAAK61C,qBAAuB,KAC5B71C,KAAK41C,qBAAuB,KAC5B51C,KAAKu1C,iBAAmB,KACxBv1C,KAAKw1C,iBAAmB,KACxBx1C,KAAKy1C,iBAAmB,KACxBz1C,KAAK01C,iBAAmB,KACxB11C,KAAK81C,iBAAmB,KACxB91C,KAAK+1C,kBAAoB,KACzB/1C,KAAKg2C,sBAAwB,YAG1Bh2C,MAAK+0C,OAAOpyB,IAavBvT,MAAO,SAAUuT,EAAKo0B,EAAYC,GAKJ,mBAAfD,KAA8BA,GAAa,GAC5B,mBAAfC,KAA8BA,GAAa,GAElDh3C,KAAKi3C,WAAWt0B,KAKhB3iB,KAAKg1C,cAAgBryB,EACrB3iB,KAAKi1C,YAAc8B,EACnB/2C,KAAKk1C,YAAc8B,EAEfhzC,UAAUK,OAAS,IAEnBrE,KAAKo1C,MAAQtzC,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,MAchEkzC,QAAS,SAAUH,EAAYC,GAED,mBAAfD,KAA8BA,GAAa,GAC5B,mBAAfC,KAA8BA,GAAa,GAGtDh3C,KAAKg1C,cAAgBh1C,KAAK0kC,QAC1B1kC,KAAKi1C,YAAc8B,EACnB/2C,KAAKk1C,YAAc8B,EAEfhzC,UAAUK,OAAS,IAEnBrE,KAAKo1C,MAAQtzC,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,KAU5DmzC,MAAO,aAQPC,UAAW,WAEP,GAAIp3C,KAAKg1C,eAAiBh1C,KAAKmyC,KAAKyE,SACpC,CAQI,GAJA52C,KAAKq3C,oBAELr3C,KAAKs3C,gBAAgBt3C,KAAKg1C,eAEtBh1C,KAAK0kC,UAAY1kC,KAAKg1C,cAGtB,MAIAh1C,MAAKg1C,cAAgB,KAMrBh1C,KAAKs1C,mBAILt1C,KAAKmyC,KAAK4B,KAAK1rB,QACfroB,KAAKs1C,kBAAkBvxC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,MAGb,IAAtCnyC,KAAKmyC,KAAK4B,KAAKwD,oBAAkE,IAAtCv3C,KAAKmyC,KAAK4B,KAAKyD,mBAG1Dx3C,KAAKw2C,eAMLx2C,KAAKmyC,KAAK4B,KAAK3kC,SAOnBpP,KAAKw2C,iBAYjBa,kBAAmB,WAIXr3C,KAAK0kC,UAID1kC,KAAKi2C,oBAGLj2C,KAAKi2C,mBAAmBlyC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,MAG5DnyC,KAAKmyC,KAAKgC,OAAOsD,YAEjBz3C,KAAKmyC,KAAKyB,OAAOvrB,QAEjBroB,KAAKmyC,KAAK2B,MAAMzrB,OAAM,GAEtBroB,KAAKmyC,KAAKkC,QAAQvkB,QAElB9vB,KAAKmyC,KAAK+B,KAAKuD,YAEfz3C,KAAKmyC,KAAK/rC,MAAMiiB,MAAMroB,KAAKi1C,aAEvBj1C,KAAKmyC,KAAKuF,OAEV13C,KAAKmyC,KAAKuF,MAAMrvB,QAGhBroB,KAAKi1C,cAELj1C,KAAKmyC,KAAKC,MAAMwC,WAEZ50C,KAAKk1C,eAAgB,GAErBl1C,KAAKmyC,KAAK0B,MAAM3nC,aAchC+qC,WAAY,SAAUt0B,GAIlB,GAAI3iB,KAAK+0C,OAAOpyB,GAChB,CACI,GAAI1R,IAAQ,CAOZ,OALIjR,MAAK+0C,OAAOpyB,GAAc,UAAK1R,GAAQ,GACvCjR,KAAK+0C,OAAOpyB,GAAa,SAAK1R,GAAQ,GACtCjR,KAAK+0C,OAAOpyB,GAAa,SAAK1R,GAAQ,GACtCjR,KAAK+0C,OAAOpyB,GAAa,SAAK1R,GAAQ,GAEtCA,KAAU,GAEV1N,QAAQo0C,KAAK,gIACN,IAGJ,EAKP,MADAp0C,SAAQo0C,KAAK,sDAAwDh1B,IAC9D,GAYfi1B,KAAM,SAAUj1B,GAEZ3iB,KAAK+0C,OAAOpyB,GAAKwvB,KAAOnyC,KAAKmyC,KAC7BnyC,KAAK+0C,OAAOpyB,GAAKqmB,IAAMhpC,KAAKmyC,KAAKnJ,IACjChpC,KAAK+0C,OAAOpyB,GAAKgxB,KAAO3zC,KAAKmyC,KAAKwB,KAClC3zC,KAAK+0C,OAAOpyB,GAAKixB,OAAS5zC,KAAKmyC,KAAKyB,OACpC5zC,KAAK+0C,OAAOpyB,GAAKkxB,MAAQ7zC,KAAKmyC,KAAK0B,MACnC7zC,KAAK+0C,OAAOpyB,GAAKmxB,MAAQ9zC,KAAKmyC,KAAK2B,MACnC9zC,KAAK+0C,OAAOpyB,GAAKoxB,KAAO/zC,KAAKmyC,KAAK4B,KAClC/zC,KAAK+0C,OAAOpyB,GAAKqxB,KAAOh0C,KAAKmyC,KAAK6B,KAClCh0C,KAAK+0C,OAAOpyB,GAAKsxB,MAAQj0C,KAAKmyC,KAAK8B,MACnCj0C,KAAK+0C,OAAOpyB,GAAKvc,MAAQpG,KAAKmyC,KAAK/rC,MACnCpG,KAAK+0C,OAAOpyB,GAAK8zB,MAAQz2C,KACzBA,KAAK+0C,OAAOpyB,GAAKra,MAAQtI,KAAKmyC,KAAK7pC,MACnCtI,KAAK+0C,OAAOpyB,GAAKuxB,KAAOl0C,KAAKmyC,KAAK+B,KAClCl0C,KAAK+0C,OAAOpyB,GAAKwxB,OAASn0C,KAAKmyC,KAAKgC,OACpCn0C,KAAK+0C,OAAOpyB,GAAKyvB,MAAQpyC,KAAKmyC,KAAKC,MACnCpyC,KAAK+0C,OAAOpyB,GAAKyxB,UAAYp0C,KAAKmyC,KAAKiC,UACvCp0C,KAAK+0C,OAAOpyB,GAAK2xB,IAAMt0C,KAAKmyC,KAAKmC,IACjCt0C,KAAK+0C,OAAOpyB,GAAK0xB,QAAUr0C,KAAKmyC,KAAKkC,SAWzCwD,OAAQ,SAAUl1B,GAEV3iB,KAAK+0C,OAAOpyB,KAEZ3iB,KAAK+0C,OAAOpyB,GAAKwvB,KAAO,KACxBnyC,KAAK+0C,OAAOpyB,GAAKqmB,IAAM,KACvBhpC,KAAK+0C,OAAOpyB,GAAKgxB,KAAO,KACxB3zC,KAAK+0C,OAAOpyB,GAAKixB,OAAS,KAC1B5zC,KAAK+0C,OAAOpyB,GAAKkxB,MAAQ,KACzB7zC,KAAK+0C,OAAOpyB,GAAKmxB,MAAQ,KACzB9zC,KAAK+0C,OAAOpyB,GAAKoxB,KAAO,KACxB/zC,KAAK+0C,OAAOpyB,GAAKqxB,KAAO,KACxBh0C,KAAK+0C,OAAOpyB,GAAKsxB,MAAQ,KACzBj0C,KAAK+0C,OAAOpyB,GAAKvc,MAAQ,KACzBpG,KAAK+0C,OAAOpyB,GAAK8zB,MAAQ,KACzBz2C,KAAK+0C,OAAOpyB,GAAKra,MAAQ,KACzBtI,KAAK+0C,OAAOpyB,GAAKuxB,KAAO,KACxBl0C,KAAK+0C,OAAOpyB,GAAKwxB,OAAS,KAC1Bn0C,KAAK+0C,OAAOpyB,GAAKyvB,MAAQ,KACzBpyC,KAAK+0C,OAAOpyB,GAAKyxB,UAAY,KAC7Bp0C,KAAK+0C,OAAOpyB,GAAK2xB,IAAM,KACvBt0C,KAAK+0C,OAAOpyB,GAAK0xB,QAAU,OAYnCiD,gBAAiB,SAAU30B,GAIvB3iB,KAAK82C,gBAAkB92C,KAAK+0C,OAAOpyB,GAEnC3iB,KAAK43C,KAAKj1B,GAGV3iB,KAAKq1C,eAAiBr1C,KAAK+0C,OAAOpyB,GAAW,MAAK3iB,KAAKm3C,MAEvDn3C,KAAKs1C,kBAAoBt1C,KAAK+0C,OAAOpyB,GAAc,SAAK,KACxD3iB,KAAK61C,qBAAuB71C,KAAK+0C,OAAOpyB,GAAiB,YAAK,KAC9D3iB,KAAK41C,qBAAuB51C,KAAK+0C,OAAOpyB,GAAiB,YAAK,KAC9D3iB,KAAKu1C,iBAAmBv1C,KAAK+0C,OAAOpyB,GAAa,QAAK,KACtD3iB,KAAKw1C,iBAAmBx1C,KAAK+0C,OAAOpyB,GAAa,QAAK,KACtD3iB,KAAK21C,oBAAsB31C,KAAK+0C,OAAOpyB,GAAgB,WAAK,KAC5D3iB,KAAKy1C,iBAAmBz1C,KAAK+0C,OAAOpyB,GAAa,QAAK,KACtD3iB,KAAK01C,iBAAmB11C,KAAK+0C,OAAOpyB,GAAa,QAAK,KACtD3iB,KAAK81C,iBAAmB91C,KAAK+0C,OAAOpyB,GAAa,QAAK,KACtD3iB,KAAK+1C,kBAAoB/1C,KAAK+0C,OAAOpyB,GAAc,SAAK,KACxD3iB,KAAKg2C,sBAAwBh2C,KAAK+0C,OAAOpyB,GAAkB,aAAK,KAGhE3iB,KAAKi2C,mBAAqBj2C,KAAK+0C,OAAOpyB,GAAe,UAAK3iB,KAAKm3C,MAE/Dn3C,KAAK0kC,QAAU/hB,EACf3iB,KAAKm1C,UAAW,EAKhBn1C,KAAKq1C,eAAe5xC,MAAMzD,KAAK82C,gBAAiB92C,KAAKo1C,OAGjDzyB,IAAQ3iB,KAAKg1C,gBAEbh1C,KAAKo1C,WAYb0C,gBAAiB,WACb,MAAO93C,MAAK+0C,OAAO/0C,KAAK0kC,UAO5B8R,aAAc,WAINx2C,KAAKm1C,YAAa,GAASn1C,KAAKu1C,kBAGhCv1C,KAAKm1C,UAAW,EAChBn1C,KAAKu1C,iBAAiBxxC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,OAItDnyC,KAAKm1C,UAAW,GASxBiB,MAAO,WAECp2C,KAAKm1C,UAAYn1C,KAAK81C,kBAEtB91C,KAAK81C,iBAAiB/xC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,OAS9DmE,OAAQ,WAEAt2C,KAAKm1C,UAAYn1C,KAAK+1C,mBAEtB/1C,KAAK+1C,kBAAkBhyC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,OAS/D34B,OAAQ,WAEAxZ,KAAKm1C,UAAYn1C,KAAKw1C,iBAEtBx1C,KAAKw1C,iBAAiBzxC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,MAIlDnyC,KAAK41C,sBAEL51C,KAAK41C,qBAAqB7xC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,OAUtEwC,YAAa,WAEL30C,KAAKm1C,UAAYn1C,KAAKg2C,sBAEtBh2C,KAAKg2C,sBAAsBjyC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,MAIvDnyC,KAAK41C,sBAEL51C,KAAK41C,qBAAqB7xC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,OAUtE4F,UAAW,WAEH/3C,KAAK21C,qBAEL31C,KAAK21C,oBAAoB5xC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,OASjErmC,OAAQ,SAAU3E,EAAOC,GAEjBpH,KAAK01C,kBAEL11C,KAAK01C,iBAAiB3xC,KAAK/D,KAAK82C,gBAAiB3vC,EAAOC,IAShE6D,OAAQ,WAEAjL,KAAKm1C,UAAYn1C,KAAKy1C,kBAElBz1C,KAAKmyC,KAAK6F,aAAe5V,EAAOG,SAEhCviC,KAAKmyC,KAAKrhC,QAAQynB,OAClBv4B,KAAKmyC,KAAKrhC,QAAQM,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,IAGlDpR,KAAKy1C,iBAAiB1xC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,MAElDnyC,KAAKmyC,KAAK6F,aAAe5V,EAAOG,QAEhCviC,KAAKmyC,KAAKrhC,QAAQ8nB,WAKlB54B,KAAK61C,sBAEL71C,KAAK61C,qBAAqB9xC,KAAK/D,KAAK82C,gBAAiB92C,KAAKmyC,OAWtEjmC,QAAS,WAELlM,KAAKq3C,oBAELr3C,KAAK82C,gBAAkB,KAEvB92C,KAAKq1C,eAAiB,KACtBr1C,KAAKi2C,mBAAqB,KAE1Bj2C,KAAKs1C,kBAAoB,KACzBt1C,KAAK61C,qBAAuB,KAC5B71C,KAAK41C,qBAAuB,KAC5B51C,KAAKu1C,iBAAmB,KACxBv1C,KAAKw1C,iBAAmB,KACxBx1C,KAAKy1C,iBAAmB,KACxBz1C,KAAK81C,iBAAmB,KACxB91C,KAAK+1C,kBAAoB,KACzB/1C,KAAKg2C,sBAAwB,KAE7Bh2C,KAAKmyC,KAAO,KACZnyC,KAAK+0C,UACL/0C,KAAKg1C,cAAgB,OAM7B5S,EAAOyS,aAAahxC,UAAUsB,YAAci9B,EAAOyS,aAcnDzS,EAAO6V,WAAa,WAMhBj4C,KAAKk4C,KAAO,KAMZl4C,KAAKm4C,KAAO,KAMZn4C,KAAKo4C,MAAQ,KAMbp4C,KAAKwkC,KAAO,KAMZxkC,KAAKw9B,MAAQ,GAIjB4E,EAAO6V,WAAWp0C,WASdmlC,IAAK,SAAUv8B,GAGX,MAAmB,KAAfzM,KAAKw9B,OAA8B,OAAfx9B,KAAKo4C,OAAgC,OAAdp4C,KAAKwkC,MAEhDxkC,KAAKo4C,MAAQ3rC,EACbzM,KAAKwkC,KAAO/3B,EACZzM,KAAKk4C,KAAOzrC,EACZA,EAAM0rC,KAAOn4C,KACbA,KAAKw9B,QACE/wB,IAIXzM,KAAKwkC,KAAK0T,KAAOzrC,EAEjBA,EAAM0rC,KAAOn4C,KAAKwkC,KAElBxkC,KAAKwkC,KAAO/3B,EAEZzM,KAAKw9B,QAEE/wB,IASX4b,MAAO,WAEHroB,KAAKo4C,MAAQ,KACbp4C,KAAKwkC,KAAO,KACZxkC,KAAKk4C,KAAO,KACZl4C,KAAKm4C,KAAO,KACZn4C,KAAKw9B,MAAQ,GAUjBqZ,OAAQ,SAAUpqC,GAEd,MAAmB,KAAfzM,KAAKw9B,OAELx9B,KAAKqoB,aACL5b,EAAMyrC,KAAOzrC,EAAM0rC,KAAO,QAI1B1rC,IAAUzM,KAAKo4C,MAGfp4C,KAAKo4C,MAAQp4C,KAAKo4C,MAAMF,KAEnBzrC,IAAUzM,KAAKwkC,OAGpBxkC,KAAKwkC,KAAOxkC,KAAKwkC,KAAK2T,MAGtB1rC,EAAM0rC,OAGN1rC,EAAM0rC,KAAKD,KAAOzrC,EAAMyrC,MAGxBzrC,EAAMyrC,OAGNzrC,EAAMyrC,KAAKC,KAAO1rC,EAAM0rC,MAG5B1rC,EAAMyrC,KAAOzrC,EAAM0rC,KAAO,KAEP,OAAfn4C,KAAKo4C,QAELp4C,KAAKwkC,KAAO,UAGhBxkC,MAAKw9B,UAWT6a,QAAS,SAAUh+B,GAEf,GAAKra,KAAKo4C,OAAUp4C,KAAKwkC,KAAzB,CAKA,GAAI8T,GAASt4C,KAAKo4C,KAElB,GAEQE,IAAUA,EAAOj+B,IAEjBi+B,EAAOj+B,GAAUtW,KAAKu0C,GAG1BA,EAASA,EAAOJ,WAGdI,GAAUt4C,KAAKwkC,KAAK0T,SAMlC9V,EAAO6V,WAAWp0C,UAAUsB,YAAci9B,EAAO6V,WAcjD7V,EAAOmW,UAAY,WAMfv4C,KAAKw9B,MAAQ,EAMbx9B,KAAK2H,SAAW,EAKhB3H,KAAKmd,SAITilB,EAAOmW,UAAU10C,WASbmlC,IAAK,SAAUv8B,GAQX,MANKzM,MAAKw4C,OAAO/rC,KAEbzM,KAAKmd,KAAK7Y,KAAKmI,GACfzM,KAAKw9B,SAGF/wB,GAWXgsC,SAAU,SAAUhsC,GAEhB,MAAOzM,MAAKmd,KAAK9Z,QAAQoJ,IAW7B+rC,OAAQ,SAAU/rC,GAEd,MAAQzM,MAAKmd,KAAK9Z,QAAQoJ,GAAS,IASvC4b,MAAO,WAEHroB,KAAKmd,KAAK9Y,OAAS,EACnBrE,KAAKw9B,MAAQ,GAWjBqZ,OAAQ,SAAUpqC,GAEd,GAAIsK,GAAM/W,KAAKmd,KAAK9Z,QAAQoJ,EAE5B,OAAIsK,GAAM,IAEN/W,KAAKmd,KAAKtQ,OAAOkK,EAAK,GACtB/W,KAAKw9B,QACE/wB,GAJX,QAgBJisC,OAAQ,SAAU/1B,EAAKpZ,GAInB,IAFA,GAAIpF,GAAInE,KAAKmd,KAAK9Y,OAEXF,KAECnE,KAAKmd,KAAKhZ,IAAMnE,KAAKmd,KAAKhZ,GAAGwe,KAE7B3iB,KAAKmd,KAAKhZ,GAAGwe,GAAOpZ,IAchC8uC,QAAS,SAAUh+B,GAMf,IAJA,GAAI/W,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,GAE9CG,EAAInE,KAAKmd,KAAK9Y,OAEXF,KAECnE,KAAKmd,KAAKhZ,IAAMnE,KAAKmd,KAAKhZ,GAAGkW,IAE7Bra,KAAKmd,KAAKhZ,GAAGkW,GAAU5W,MAAMzD,KAAKmd,KAAKhZ,GAAIb,KAc3D6F,OAAOC,eAAeg5B,EAAOmW,UAAU10C,UAAW,SAE9CwF,IAAK,WAID,MAFArJ,MAAK2H,SAAW,EAEZ3H,KAAKw9B,MAAQ,EAENx9B,KAAKmd,KAAK,GAIV,QAanBhU,OAAOC,eAAeg5B,EAAOmW,UAAU10C,UAAW,QAE9CwF,IAAK,WAED,MAAIrJ,MAAK2H,SAAW3H,KAAKw9B,OAErBx9B,KAAK2H,WAEE3H,KAAKmd,KAAKnd,KAAK2H,WAIf,QAOnBy6B,EAAOmW,UAAU10C,UAAUsB,YAAci9B,EAAOmW,UAehDnW,EAAOuW,OAAS,WAMZ34C,KAAK44C,aAML54C,KAAK64C,YAAc,IAGnB,IAAI97B,GAAO/c,IAKXA,MAAK84C,SAAW,WACZ1W,EAAOuW,OAAO90C,UAAUi1C,SAASr1C,MAAMsZ,EAAM/Y,YASjDhE,KAAK+4C,UAAW,EAMhB/4C,KAAKg5C,kBAAmB,EAQxBh5C,KAAKi5C,QAAS,GAIlB7W,EAAOuW,OAAO90C,WAQVq1C,iBAAkB,SAAUC,EAAUC,GAElC,GAAwB,kBAAbD,GAEP,KAAM,IAAIrsC,OAAM,kFAAkFusC,QAAQ,OAAQD,KAc1HE,kBAAmB,SAAUH,EAAUI,EAAQC,EAAiBC,GAE5D,GACIC,GADAC,EAAY35C,KAAK45C,iBAAiBT,EAAUK,EAGhD,IAAkB,KAAdG,GAIA,GAFAD,EAAU15C,KAAK44C,UAAUe,GAErBD,EAAQH,WAAaA,EAErB,KAAM,IAAIzsC,OAAM,kBAAoBysC,EAAS,GAAK,QAAU,eAAkBA,EAAc,OAAL,IAAe;KAK1GG,GAAU,GAAItX,GAAOyX,cAAc75C,KAAMm5C,EAAUI,EAAQC,EAAiBC,GAC5Ez5C,KAAK85C,YAAYJ,EAQrB,OALI15C,MAAK+4C,UAAY/4C,KAAK64C,aAEtBa,EAAQK,QAAQ/5C,KAAK64C,aAGlBa,GASXI,YAAa,SAAUJ,GAGnB,GAAI57B,GAAI9d,KAAK44C,UAAUv0C,MAEvB,GACIyZ,WAEG9d,KAAK44C,UAAU96B,IAAM47B,EAAQM,WAAah6C,KAAK44C,UAAU96B,GAAGk8B,UAEnEh6C,MAAK44C,UAAU/rC,OAAOiR,EAAI,EAAG,EAAG47B,IAUpCE,iBAAkB,SAAUT,EAAUroC,GAKlC,IAHA,GACImpC,GADAn8B,EAAI9d,KAAK44C,UAAUv0C,OAGhByZ,KAIH,GAFAm8B,EAAMj6C,KAAK44C,UAAU96B,GAEjBm8B,EAAIC,YAAcf,GAAYc,EAAInpC,UAAYA,EAE9C,MAAOgN,EAIf,OAAO,IAYXq8B,IAAK,SAAUhB,EAAUroC,GAErB,MAAoD,KAA7C9Q,KAAK45C,iBAAiBT,EAAUroC,IAa3Ck4B,IAAK,SAAUmQ,EAAUK,EAAiBC,GAItC,MAFAz5C,MAAKk5C,iBAAiBC,EAAU,OAEzBn5C,KAAKs5C,kBAAkBH,GAAU,EAAOK,EAAiBC,IAapEW,QAAS,SAAUjB,EAAUK,EAAiBC,GAI1C,MAFAz5C,MAAKk5C,iBAAiBC,EAAU,WAEzBn5C,KAAKs5C,kBAAkBH,GAAU,EAAMK,EAAiBC,IAYnE5C,OAAQ,SAAUsC,EAAUroC,GAExB9Q,KAAKk5C,iBAAiBC,EAAU,SAEhC,IAAIh1C,GAAInE,KAAK45C,iBAAiBT,EAAUroC,EAQxC,OANU,KAAN3M,IAEAnE,KAAK44C,UAAUz0C,GAAGk2C,WAClBr6C,KAAK44C,UAAU/rC,OAAO1I,EAAG,IAGtBg1C,GAUX1B,UAAW,SAAU3mC,GAEM,mBAAZA,KAA2BA,EAAU,KAIhD,KAFA,GAAIgN,GAAI9d,KAAK44C,UAAUv0C,OAEhByZ,KAEChN,EAEI9Q,KAAK44C,UAAU96B,GAAGhN,UAAYA,IAE9B9Q,KAAK44C,UAAU96B,GAAGu8B,WAClBr6C,KAAK44C,UAAU/rC,OAAOiR,EAAG,IAK7B9d,KAAK44C,UAAU96B,GAAGu8B,UAIrBvpC,KAED9Q,KAAK44C,UAAUv0C,OAAS,IAWhCi2C,gBAAiB,WAEb,MAAOt6C,MAAK44C,UAAUv0C,QAW1Bk2C,KAAM,WAEFv6C,KAAKg5C,kBAAmB,GAU5BF,SAAU,WAEN,GAAK94C,KAAKi5C,OAAV,CAKA,GAEIuB,GAFAC,EAAY34C,MAAM+B,UAAUC,MAAMC,KAAKC,WACvC8Z,EAAI9d,KAAK44C,UAAUv0C,MAQvB,IALIrE,KAAK+4C,WAEL/4C,KAAK64C,YAAc4B,GAGlB38B,EAAL,CAMA08B,EAAWx6C,KAAK44C,UAAU90C,QAC1B9D,KAAKg5C,kBAAmB,CAIxB,GACIl7B,WAEG08B,EAAS18B,IAAM9d,KAAKg5C,kBAAoBwB,EAAS18B,GAAGi8B,QAAQU,MAAe,MAUtFC,OAAQ,WAEJ16C,KAAK64C,YAAc,MAUvB8B,QAAS,WAEL36C,KAAKy3C,kBAEEz3C,MAAK44C,gBACL54C,MAAK64C,aAShBrkC,SAAU,WAEN,MAAO,yBAA0BxU,KAAKi5C,OAAQ,iBAAkBj5C,KAAKs6C,kBAAmB,MAMhGlY,EAAOuW,OAAO90C,UAAUsB,YAAci9B,EAAOuW,OAsB7CvW,EAAOyX,cAAgB,SAAUe,EAAQzB,EAAUI,EAAQC,EAAiBC,GAMxEz5C,KAAKk6C,UAAYf,EAMjBn5C,KAAK66C,QAAUtB,EAKfv5C,KAAK8Q,QAAU0oC,EAMfx5C,KAAK86C,QAAUF,EAMf56C,KAAKg6C,UAAYP,GAAY,EAK7Bz5C,KAAK+6C,UAAY,EAOjB/6C,KAAKi5C,QAAS,EAOdj5C,KAAKg7C,OAAS,MAIlB5Y,EAAOyX,cAAch2C,WASjBk2C,QAAS,SAASU,GAEd,GAAIQ,GAAeD,CAcnB,OAZIh7C,MAAKi5C,QAAYj5C,KAAKk6C,YAEtBc,EAASh7C,KAAKg7C,OAASh7C,KAAKg7C,OAAO7/B,OAAOs/B,GAAaA,EACvDQ,EAAgBj7C,KAAKk6C,UAAUz2C,MAAMzD,KAAK8Q,QAASkqC,GACnDh7C,KAAK+6C,YAED/6C,KAAK66C,SAEL76C,KAAKk7C,UAIND,GAUXC,OAAQ,WACJ,MAAOl7C,MAAKm7C,UAAYn7C,KAAK86C,QAAQjE,OAAO72C,KAAKk6C,UAAWl6C,KAAK8Q,SAAW,MAOhFqqC,QAAS,WACL,QAAUn7C,KAAK86C,WAAa96C,KAAKk6C,WAOrCX,OAAQ,WACJ,MAAOv5C,MAAK66C,SAOhBO,YAAa,WACT,MAAOp7C,MAAKk6C,WAOhBmB,UAAW,WACP,MAAOr7C,MAAK86C,SAQhBT,SAAU,iBACCr6C,MAAK86C,cACL96C,MAAKk6C,gBACLl6C,MAAK8Q,SAOhB0D,SAAU,WACN,MAAO,gCAAkCxU,KAAK66C,QAAS,aAAc76C,KAAKm7C,UAAW,YAAcn7C,KAAKi5C,OAAS,MAKzH7W,EAAOyX,cAAch2C,UAAUsB,YAAci9B,EAAOyX,cAiBpDzX,EAAOkZ,OAAS,SAAUnJ,EAAMvvB,EAAU3B,GAKtCjhB,KAAKmyC,KAAOA,EAMZnyC,KAAKiD,KAAOm/B,EAAO0B,aAQnB9jC,KAAK4J,QAAU5J,MAMfA,KAAKyzB,WAMLzzB,KAAKwJ,OAAQ,EAMbxJ,KAAKw2B,QAAU,EAKfx2B,KAAKu7C,UAAY,GAAInZ,GAAOn+B,KAM5B,IAAIuB,GAAI,GAAI+U,KAoBZ,IAfAva,KAAK4iB,UAED/f,YAAcI,KAAM,KAAMsG,OAAShF,EAAG,IAAKC,EAAG,MAC9C0vC,MAAQjxC,KAAM,KAAMsG,MAAO,GAC3BwQ,OAAS9W,KAAM,KAAMsG,OAAShF,EAAG,EAAKC,EAAG,IACzCg3C,MAAQv4C,KAAM,MAAOsG,OAAS/D,EAAEi2C,cAAgBj2C,EAAEk2C,WAAal2C,EAAEm2C,UAAyB,GAAdn2C,EAAEo2C,WAAiB,GAAsB,GAAjBp2C,EAAEq2C,aAAoBr2C,EAAEs2C,eAC5HC,YAAc94C,KAAM,KAAMsG,MAAO,OACjCyyC,WAAa/4C,KAAM,YAAasG,MAAO,KAAMqa,aAAeS,QAAQ,IACpE43B,WAAah5C,KAAM,YAAasG,MAAO,KAAMqa,aAAeS,QAAQ,IACpE63B,WAAaj5C,KAAM,YAAasG,MAAO,KAAMqa,aAAeS,QAAQ,IACpE83B,WAAal5C,KAAM,YAAasG,MAAO,KAAMqa,aAAeS,QAAQ,KAKpEzB,EAEA,IAAK,GAAID,KAAOC,GAEZ5iB,KAAK4iB,SAASD,GAAOC,EAASD,EAOtC3iB,MAAKihB,YAAcA,OAIvBmhB,EAAOkZ,OAAOz3C,WAMVke,KAAM,aAUNq6B,cAAe,SAAUj1C,EAAOC,GAE5BpH,KAAK4iB,SAAS/f,WAAW0G,MAAMhF,EAAI4C,EACnCnH,KAAK4iB,SAAS/f,WAAW0G,MAAM/E,EAAI4C,GASvCoS,OAAQ,SAAU6iC,GAEd,GAAuB,mBAAZA,GACX,CACI,GAAI93C,GAAI83C,EAAQ93C,EAAIvE,KAAKmyC,KAAKhrC,MAC1B3C,EAAI,EAAI63C,EAAQ73C,EAAIxE,KAAKmyC,KAAK/qC,QAE9B7C,IAAMvE,KAAKu7C,UAAUh3C,GAAKC,IAAMxE,KAAKu7C,UAAU/2C,KAE/CxE,KAAK4iB,SAAS7I,MAAMxQ,MAAMhF,EAAIA,EAAE+3C,QAAQ,GACxCt8C,KAAK4iB,SAAS7I,MAAMxQ,MAAM/E,EAAIA,EAAE83C,QAAQ,GACxCt8C,KAAKu7C,UAAUjyC,IAAI/E,EAAGC,IAI9BxE,KAAK4iB,SAASsxB,KAAK3qC,MAAQvJ,KAAKmyC,KAAK+B,KAAKqI,uBAQ9CrwC,QAAS,WAELlM,KAAKmyC,KAAO,OAMpB/P,EAAOkZ,OAAOz3C,UAAUsB,YAAci9B,EAAOkZ,OAM7CnyC,OAAOC,eAAeg5B,EAAOkZ,OAAOz3C,UAAW,SAE3CwF,IAAK,WACD,MAAOrJ,MAAK4iB,SAAS/f,WAAW0G,MAAMhF,GAG1C+E,IAAK,SAASC,GACVvJ,KAAK4iB,SAAS/f,WAAW0G,MAAMhF,EAAIgF,KAS3CJ,OAAOC,eAAeg5B,EAAOkZ,OAAOz3C,UAAW,UAE3CwF,IAAK,WACD,MAAOrJ,MAAK4iB,SAAS/f,WAAW0G,MAAM/E,GAG1C8E,IAAK,SAASC,GACVvJ,KAAK4iB,SAAS/f,WAAW0G,MAAM/E,EAAI+E,KAmB3C64B,EAAOoa,OAAS,SAAUrK,EAAM9pC,GAEN,mBAAXA,KAA0BA,EAAS,MAK9CrI,KAAKmyC,KAAOA,EAKZnyC,KAAKqI,OAASA,EAMdrI,KAAKi5C,QAAS,EAMdj5C,KAAKiI,SAAU,EAMfjI,KAAKy8C,cAAe,EAMpBz8C,KAAK08C,WAAY,EAMjB18C,KAAK28C,eAAgB,EAMrB38C,KAAK48C,WAAY,EAMjB58C,KAAK68C,eAAgB,GAIzBza,EAAOoa,OAAO34C,WAOVuzC,UAAW,aAQX59B,OAAQ,aAQRvO,OAAQ,aAQR6xC,WAAY,aAOZ5wC,QAAS,WAELlM,KAAKmyC,KAAO,KACZnyC,KAAKqI,OAAS,KACdrI,KAAKi5C,QAAS,EACdj5C,KAAKiI,SAAU,IAMvBm6B,EAAOoa,OAAO34C,UAAUsB,YAAci9B,EAAOoa,OAiB7Cpa,EAAO2a,cAAgB,SAAS5K,GAK5BnyC,KAAKmyC,KAAOA,EAKZnyC,KAAKg9C,WAMLh9C,KAAKi9C,KAAO,EAMZj9C,KAAKk9C,GAAK,GAId9a,EAAO2a,cAAcl5C,WAWjBmlC,IAAK,SAAUmU,GAEX,GAAI75C,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,GAC9CiT,GAAS,CA6Cb,OA1CsB,kBAAXkmC,GAEPA,EAAS,GAAIA,GAAOn9C,KAAKmyC,KAAMnyC,OAI/Bm9C,EAAOhL,KAAOnyC,KAAKmyC,KACnBgL,EAAO90C,OAASrI,MAIe,kBAAxBm9C,GAAkB,YAEzBA,EAAOV,cAAe,EACtBxlC,GAAS,GAGmB,kBAArBkmC,GAAe,SAEtBA,EAAOT,WAAY,EACnBzlC,GAAS,GAGuB,kBAAzBkmC,GAAmB,aAE1BA,EAAOR,eAAgB,EACvB1lC,GAAS,GAGmB,kBAArBkmC,GAAe,SAEtBA,EAAOP,WAAY,EACnB3lC,GAAS,GAGuB,kBAAzBkmC,GAAmB,aAE1BA,EAAON,eAAgB,EACvB5lC,GAAS,GAITA,IAEIkmC,EAAOV,cAAgBU,EAAOT,WAAaS,EAAOR,iBAElDQ,EAAOlE,QAAS,IAGhBkE,EAAOP,WAAaO,EAAON,iBAE3BM,EAAOl1C,SAAU,GAGrBjI,KAAKi9C,KAAOj9C,KAAKg9C,QAAQ14C,KAAK64C,GAGA,kBAAnBA,GAAa,MAEpBA,EAAOp7B,KAAKte,MAAM05C,EAAQ75C,GAGvB65C,GAIA,MAUftG,OAAQ,SAAUsG,GAId,IAFAn9C,KAAKk9C,GAAKl9C,KAAKi9C,KAERj9C,KAAKk9C,MAER,GAAIl9C,KAAKg9C,QAAQh9C,KAAKk9C,MAAQC,EAK1B,MAHAA,GAAOjxC,UACPlM,KAAKg9C,QAAQnwC,OAAO7M,KAAKk9C,GAAI,OAC7Bl9C,MAAKi9C,QAYjBxF,UAAW,WAIP,IAFAz3C,KAAKk9C,GAAKl9C,KAAKi9C,KAERj9C,KAAKk9C,MAERl9C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIhxC,SAG1BlM,MAAKg9C,QAAQ34C,OAAS,EACtBrE,KAAKi9C,KAAO,GAUhB7F,UAAW,WAIP,IAFAp3C,KAAKk9C,GAAKl9C,KAAKi9C,KAERj9C,KAAKk9C,MAEJl9C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIjE,QAAUj5C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIT,cAEtDz8C,KAAKg9C,QAAQh9C,KAAKk9C,IAAI9F,aAYlC59B,OAAQ,WAIJ,IAFAxZ,KAAKk9C,GAAKl9C,KAAKi9C,KAERj9C,KAAKk9C,MAEJl9C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIjE,QAAUj5C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIR,WAEtD18C,KAAKg9C,QAAQh9C,KAAKk9C,IAAI1jC,UAalC4jC,WAAY,WAIR,IAFAp9C,KAAKk9C,GAAKl9C,KAAKi9C,KAERj9C,KAAKk9C,MAEJl9C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIjE,QAAUj5C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIP,eAEtD38C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIE,cAYlCnyC,OAAQ,WAIJ,IAFAjL,KAAKk9C,GAAKl9C,KAAKi9C,KAERj9C,KAAKk9C,MAEJl9C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIj1C,SAAWjI,KAAKg9C,QAAQh9C,KAAKk9C,IAAIN,WAEvD58C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIjyC,UAYlC6xC,WAAY,WAIR,IAFA98C,KAAKk9C,GAAKl9C,KAAKi9C,KAERj9C,KAAKk9C,MAEJl9C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIj1C,SAAWjI,KAAKg9C,QAAQh9C,KAAKk9C,IAAIL,eAEvD78C,KAAKg9C,QAAQh9C,KAAKk9C,IAAIJ,cAWlC5wC,QAAS,WAELlM,KAAKy3C,YAELz3C,KAAKmyC,KAAO,OAMpB/P,EAAO2a,cAAcl5C,UAAUsB,YAAci9B,EAAO2a,cAiBpD3a,EAAOrpB,MAAQ,SAAUo5B,GAKrBnyC,KAAKmyC,KAAOA,EAEZlyC,KAAK8Y,MAAMhV,KAAK/D,KAAM,GAMtBA,KAAKqd,KAAO,cAOZrd,KAAKiZ,aAAc,EAMnBjZ,KAAKq9C,yBAA0B,EAM/Br9C,KAAKw4C,QAAS,EAKdx4C,KAAKs9C,qBAAuB,EAM5Bt9C,KAAKu9C,WAAa,SAMlBv9C,KAAKw9C,iBAAmB,EAEpBrL,EAAKsL,QAELz9C,KAAK09C,YAAYvL,EAAKsL,SAK9Brb,EAAOrpB,MAAMlV,UAAYsF,OAAOkD,OAAOpM,KAAK8Y,MAAMlV,WAClDu+B,EAAOrpB,MAAMlV,UAAUsB,YAAci9B,EAAOrpB,MAS5CqpB,EAAOrpB,MAAMlV,UAAU65C,YAAc,SAAUD,GAEvCA,EAAgC,0BAEhCz9C,KAAKq9C,wBAA0BI,EAAgC,yBAG/DA,EAAwB,kBAExBz9C,KAAKgZ,gBAAkBykC,EAAwB,kBAUvDrb,EAAOrpB,MAAMlV,UAAUqyC,KAAO,WAE1B9T,EAAOub,IAAIC,UAAU59C,KAAKmyC,KAAK9+B,OAAQrT,KAAK0mB,OAE5C,IAAIm3B,GAAQ79C,IAEZA,MAAK89C,UAAY,SAAUxtB,GACvB,MAAOutB,GAAME,iBAAiBztB,IAGlC8R,EAAO4b,OAAOC,cAAcj+C,KAAKmyC,KAAK9+B,OAAQ,QAC9C+uB,EAAO4b,OAAOE,eAAel+C,KAAKmyC,KAAK9+B,OAAQ,QAE/CrT,KAAKm+C,mBAUT/b,EAAOrpB,MAAMlV,UAAUuzC,UAAY,WAE/Bp3C,KAAKs9C,qBAAuB,CAK5B,KAAK,GAFDhiB,GAAMt7B,KAAKoM,SAAS/H,OAEfF,EAAI,EAAOm3B,EAAJn3B,EAASA,IAErBnE,KAAKoM,SAASjI,GAAGizC,aAUzBhV,EAAOrpB,MAAMlV,UAAU2V,OAAS,WAI5B,IAFA,GAAIrV,GAAInE,KAAKoM,SAAS/H,OAEfF,KAEHnE,KAAKoM,SAASjI,GAAGqV,UAazB4oB,EAAOrpB,MAAMlV,UAAUu5C,WAAa,WAEhC,GAAIp9C,KAAKmyC,KAAKC,MAAMwB,OAAO7pC,OAC3B,CACI/J,KAAKmyC,KAAKC,MAAMwB,OAAO7pC,OAAOqzC,aAE9Bp9C,KAAKmyC,KAAKC,MAAMwB,OAAOp6B,QAIvB,KAFA,GAAIrV,GAAInE,KAAKoM,SAAS/H,OAEfF,KAECnE,KAAKoM,SAASjI,KAAOnE,KAAKmyC,KAAKC,MAAMwB,OAAO7pC,QAE5C/J,KAAKoM,SAASjI,GAAGi5C,iBAK7B,CACIp9C,KAAKmyC,KAAKC,MAAMwB,OAAOp6B,QAIvB,KAFA,GAAIrV,GAAInE,KAAKoM,SAAS/H,OAEfF,KAEHnE,KAAKoM,SAASjI,GAAGi5C,eAU7Bhb,EAAOrpB,MAAMlV,UAAUs6C,gBAAkB,WAIjCn+C,KAAKu9C,WAFqB9vC,SAA1B6F,SAAS8qC,aAES,yBAEU3wC,SAAvB6F,SAAS+qC,UAEI,sBAES5wC,SAAtB6F,SAASgrC,SAEI,qBAEO7wC,SAApB6F,SAASirC,OAEI,mBAIA,KAIlBv+C,KAAKu9C,YAELjqC,SAASsJ,iBAAiB5c,KAAKu9C,WAAYv9C,KAAK89C,WAAW,GAG/Dp6C,OAAO86C,WAAax+C,KAAK89C,UACzBp6C,OAAO+6C,WAAaz+C,KAAK89C,UAEzBp6C,OAAOg7C,OAAS1+C,KAAK89C,UACrBp6C,OAAOi7C,QAAU3+C,KAAK89C,SAEtB,IAAID,GAAQ79C,IAERA,MAAKmyC,KAAKyM,OAAOC,cAEjBC,SAASC,IAAIC,YAAYpiC,iBAAiB,WACtCwlB,EAAOrpB,MAAMlV,UAAUk6C,iBAAiBh6C,KAAK85C,GAAQ56C,KAAM,YAG/D67C,SAASC,IAAIE,YAAYriC,iBAAiB,WACtCwlB,EAAOrpB,MAAMlV,UAAUk6C,iBAAiBh6C,KAAK85C,GAAQ56C,KAAM,eAYvEm/B,EAAOrpB,MAAMlV,UAAUk6C,iBAAmB,SAAUztB,GAEhD,MAAmB,aAAfA,EAAMrtB,MAAsC,SAAfqtB,EAAMrtB,MAAkC,aAAfqtB,EAAMrtB,MAAsC,UAAfqtB,EAAMrtB,UAEtE,aAAfqtB,EAAMrtB,MAAsC,SAAfqtB,EAAMrtB,KAEnCjD,KAAKmyC,KAAK+M,UAAU5uB,IAEA,aAAfA,EAAMrtB,MAAsC,UAAfqtB,EAAMrtB,OAExCjD,KAAKmyC,KAAKgN,UAAU7uB,SAMxBtwB,KAAKq9C,0BAKL/pC,SAASirC,QAAUjrC,SAAS+qC,WAAa/qC,SAASgrC,UAAYhrC,SAAS8qC,cAA+B,UAAf9tB,EAAMrtB,KAE7FjD,KAAKmyC,KAAKiN,WAAW9uB,GAIrBtwB,KAAKmyC,KAAKkN,YAAY/uB,MAe9B8R,EAAOrpB,MAAMlV,UAAUuV,mBAAqB,SAASJ,GAEjD,GAAI8B,GAAMsnB,EAAOkd,MAAMC,aAAavmC,EACpChZ,MAAKw9C,iBAAmBpb,EAAOkd,MAAME,SAAS1kC,EAAI6O,EAAG7O,EAAI8O,EAAG9O,EAAIxV,GAEhEtF,KAAKyZ,sBAAyBqB,EAAI6O,EAAI,IAAK7O,EAAI8O,EAAI,IAAK9O,EAAIxV,EAAI,KAChEtF,KAAK6Z,sBAAwBuoB,EAAOkd,MAAMG,YAAY3kC,EAAI6O,EAAG7O,EAAI8O,EAAG9O,EAAIxV,EAAG,IAAK,MASpF88B,EAAOrpB,MAAMlV,UAAUqI,QAAW,WAE1BlM,KAAKu9C,YAELjqC,SAAS4J,oBAAoBld,KAAKu9C,WAAYv9C,KAAK89C,WAAW,GAGlEp6C,OAAO86C,WAAa,KACpB96C,OAAO+6C,WAAa,KAEpB/6C,OAAOg7C,OAAS,KAChBh7C,OAAOi7C,QAAU,MAQrBx1C,OAAOC,eAAeg5B,EAAOrpB,MAAMlV,UAAW,mBAE1CwF,IAAK,WAED,MAAOrJ,MAAKw9C,kBAIhBl0C,IAAK,SAAU8c,GAENpmB,KAAKmyC,KAAKzvC,aAEX1C,KAAKoZ,mBAAmBgN,MAapCjd,OAAOC,eAAeg5B,EAAOrpB,MAAMlV,UAAW,YAE1CwF,IAAK,WAED,OAAQpJ,KAAKsB,WAAWE,QAI5B6H,IAAK,SAAUC,GAIPtJ,KAAKsB,WAAWE,OAFhB8H,EAEyB,EAIA,KA0BrC64B,EAAOsd,MAAQ,SAAUvN,EAAM9pC,EAAQgV,EAAMsiC,EAAYC,EAAYC,GAEvC,mBAAfF,KAA8BA,GAAa,GAC5B,mBAAfC,KAA8BA,GAAa,GACvB,mBAApBC,KAAmCA,EAAkBzd,EAAO0d,QAAQC,QAK/E//C,KAAKmyC,KAAOA,EAEU,mBAAX9pC,KAEPA,EAAS8pC,EAAKC,OAMlBpyC,KAAKqd,KAAOA,GAAQ,QAEpBpd,KAAKkM,uBAAuBpI,KAAK/D,MAE7B2/C,EAEA3/C,KAAKmyC,KAAK7pC,MAAMkE,SAASxM,MAIrBqI,GAEAA,EAAOmE,SAASxM,MAOxBA,KAAKolB,EAAI,EAMTplB,KAAKiD,KAAOm/B,EAAOkB,MAMnBtjC,KAAKggD,OAAQ,EAMbhgD,KAAKw4C,QAAS,EAMdx4C,KAAKigD,eAAgB,EAQrBjgD,KAAKkgD,UAAY9d,EAAO12B,OAKxB1L,KAAKoG,MAAQ,GAAIg8B,GAAOn+B,MAAM,EAAG,GAOjCjE,KAAKmgD,OAAS,KAKdngD,KAAKogD,aAAe,GAAIhe,GAAOn+B,MAM/BjE,KAAK4/C,WAAaA,EAKlB5/C,KAAKqgD,iBAAkB,EAKvBrgD,KAAK6/C,gBAAkBA,EAKvB7/C,KAAKsgD,UAAY,GAAIle,GAAOuW,OAM5B34C,KAAKugD,cAAgB,IAiBrBvgD,KAAKwgD,QAAW,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAI/Cpe,EAAOsd,MAAM77C,UAAYsF,OAAOkD,OAAOpM,KAAKkM,uBAAuBtI,WACnEu+B,EAAOsd,MAAM77C,UAAUsB,YAAci9B,EAAOsd,MAM5Ctd,EAAOsd,MAAMe,YAAc,EAM3Bre,EAAOsd,MAAMgB,aAAe,EAM5Bte,EAAOsd,MAAMiB,aAAe,EAM5Bve,EAAOsd,MAAMkB,eAAiB,GAM9Bxe,EAAOsd,MAAMmB,gBAAkB,EAc/Bze,EAAOsd,MAAM77C,UAAUmlC,IAAM,SAAUv8B,EAAOq0C,GA0B1C,MAxBsB,mBAAXA,KAA0BA,GAAS,GAE1Cr0C,EAAMpE,SAAWrI,OAEbA,KAAK4/C,YAEL5/C,KAAKmyC,KAAKkC,QAAQnlB,OAAOziB,EAAOzM,KAAK6/C,iBAGzC7/C,KAAKwM,SAASC,GAEdA,EAAM2Y,EAAIplB,KAAKoM,SAAS/H,QAEnBy8C,GAAUr0C,EAAMs0C,QAEjBt0C,EAAMs0C,OAAOC,eAAelI,SAASrsC,EAAOzM,MAG5B,OAAhBA,KAAKmgD,SAELngD,KAAKmgD,OAAS1zC,IAIfA,GAcX21B,EAAOsd,MAAM77C,UAAUo9C,YAAc,SAAU70C,EAAU00C,GAErD,GAAIh/C,MAAM6kC,QAAQv6B,GAEd,IAAK,GAAIjI,GAAI,EAAGA,EAAIiI,EAAS/H,OAAQF,IAEjCnE,KAAKgpC,IAAI58B,EAASjI,GAAI28C,EAI9B,OAAO10C,IAcXg2B,EAAOsd,MAAM77C,UAAUq9C,MAAQ,SAAUz0C,EAAOE,EAAOm0C,GA0BnD,MAxBsB,mBAAXA,KAA0BA,GAAS,GAE1Cr0C,EAAMpE,SAAWrI,OAEbA,KAAK4/C,YAEL5/C,KAAKmyC,KAAKkC,QAAQnlB,OAAOziB,EAAOzM,KAAK6/C,iBAGzC7/C,KAAK0M,WAAWD,EAAOE,GAEvB3M,KAAKmhD,WAEAL,GAAUr0C,EAAMs0C,QAEjBt0C,EAAMs0C,OAAOC,eAAelI,SAASrsC,EAAOzM,MAG5B,OAAhBA,KAAKmgD,SAELngD,KAAKmgD,OAAS1zC,IAIfA,GAWX21B,EAAOsd,MAAM77C,UAAUu9C,MAAQ,SAAUz0C,GAErC,MAAY,GAARA,GAAaA,GAAS3M,KAAKoM,SAAS/H,OAE7B,GAIArE,KAAKsN,WAAWX,IAiB/By1B,EAAOsd,MAAM77C,UAAUwI,OAAS,SAAU9H,EAAGC,EAAGme,EAAK5S,EAAOyoC,GAElC,mBAAXA,KAA0BA,GAAS,EAE9C,IAAI/rC,GAAQ,GAAIzM,MAAKkgD,UAAUlgD,KAAKmyC,KAAM5tC,EAAGC,EAAGme,EAAK5S,EAyBrD,OAvBI/P,MAAK4/C,YAEL5/C,KAAKmyC,KAAKkC,QAAQnlB,OAAOziB,EAAOzM,KAAK6/C,gBAAiB7/C,KAAKqgD,iBAG/D5zC,EAAM+rC,OAASA,EACf/rC,EAAMxE,QAAUuwC,EAChB/rC,EAAMuzC,MAAQxH,EAEdx4C,KAAKwM,SAASC,GAEdA,EAAM2Y,EAAIplB,KAAKoM,SAAS/H,OAEpBoI,EAAMs0C,QAENt0C,EAAMs0C,OAAOC,eAAelI,SAASrsC,EAAOzM,MAG5B,OAAhBA,KAAKmgD,SAELngD,KAAKmgD,OAAS1zC,GAGXA,GAgBX21B,EAAOsd,MAAM77C,UAAUw9C,eAAiB,SAAUC,EAAU3+B,EAAK5S,EAAOyoC,GAE9C,mBAAXA,KAA0BA,GAAS,EAE9C,KAAK,GAAIr0C,GAAI,EAAOm9C,EAAJn9C,EAAcA,IAE1BnE,KAAKqM,OAAO,EAAG,EAAGsW,EAAK5S,EAAOyoC,IAWtCpW,EAAOsd,MAAM77C,UAAUs9C,QAAU,WAI7B,IAFA,GAAIh9C,GAAInE,KAAKoM,SAAS/H,OAEfF,KAEHnE,KAAKoM,SAASjI,GAAGihB,EAAIjhB,GAY7Bi+B,EAAOsd,MAAM77C,UAAU09C,YAAc,SAAU50C,GAS3C,MAPqB,mBAAVA,KAAyBA,EAAQ,GAExCA,EAAQ3M,KAAKoM,SAAS/H,OAAS,IAE/BsI,EAAQ,GAGR3M,KAAKmgD,QAELngD,KAAKwgD,OAAO,GAAK7zC,EACjB3M,KAAKmgD,OAASngD,KAAKoM,SAASpM,KAAKwgD,OAAO,IACjCxgD,KAAKmgD,QAJhB,QAeJ/d,EAAOsd,MAAM77C,UAAUq0C,KAAO,WAE1B,MAAIl4C,MAAKmgD,QAGDngD,KAAKwgD,OAAO,IAAMxgD,KAAKoM,SAAS/H,OAAS,EAEzCrE,KAAKwgD,OAAO,GAAK,EAIjBxgD,KAAKwgD,OAAO,KAGhBxgD,KAAKmgD,OAASngD,KAAKoM,SAASpM,KAAKwgD,OAAO,IAEjCxgD,KAAKmgD,QAdhB,QAyBJ/d,EAAOsd,MAAM77C,UAAU29C,SAAW,WAE9B,MAAIxhD,MAAKmgD,QAGkB,IAAnBngD,KAAKwgD,OAAO,GAEZxgD,KAAKwgD,OAAO,GAAKxgD,KAAKoM,SAAS/H,OAAS,EAIxCrE,KAAKwgD,OAAO,KAGhBxgD,KAAKmgD,OAASngD,KAAKoM,SAASpM,KAAKwgD,OAAO,IAEjCxgD,KAAKmgD,QAdhB,QA2BJ/d,EAAOsd,MAAM77C,UAAU49C,KAAO,SAAUC,EAAQ10C,GAE5ChN,KAAK+M,aAAa20C,EAAQ10C,GAC1BhN,KAAKmhD,WAWT/e,EAAOsd,MAAM77C,UAAU89C,WAAa,SAAUl1C,GAQ1C,MANIA,GAAMpE,SAAWrI,MAAQA,KAAKy4C,SAAShsC,GAASzM,KAAKoM,SAAS/H,SAE9DrE,KAAK62C,OAAOpqC,GAAO,GAAO,GAC1BzM,KAAKgpC,IAAIv8B,GAAO,IAGbA,GAWX21B,EAAOsd,MAAM77C,UAAU+9C,WAAa,SAAUn1C,GAQ1C,MANIA,GAAMpE,SAAWrI,MAAQA,KAAKy4C,SAAShsC,GAAS,IAEhDzM,KAAK62C,OAAOpqC,GAAO,GAAO,GAC1BzM,KAAKkhD,MAAMz0C,EAAO,GAAG,IAGlBA,GAWX21B,EAAOsd,MAAM77C,UAAUg+C,OAAS,SAAUp1C,GAEtC,GAAIA,EAAMpE,SAAWrI,MAAQA,KAAKy4C,SAAShsC,GAASzM,KAAKoM,SAAS/H,OAAS,EAC3E,CACI,GAAIgB,GAAIrF,KAAKy4C,SAAShsC,GAClBnH,EAAItF,KAAKohD,MAAM/7C,EAAI,EAEnBC,IAEAtF,KAAKyhD,KAAKh1C,EAAOnH,GAIzB,MAAOmH,IAWX21B,EAAOsd,MAAM77C,UAAUi+C,SAAW,SAAUr1C,GAExC,GAAIA,EAAMpE,SAAWrI,MAAQA,KAAKy4C,SAAShsC,GAAS,EACpD,CACI,GAAIpH,GAAIrF,KAAKy4C,SAAShsC,GAClBnH,EAAItF,KAAKohD,MAAM/7C,EAAI,EAEnBC,IAEAtF,KAAKyhD,KAAKh1C,EAAOnH,GAIzB,MAAOmH,IAYX21B,EAAOsd,MAAM77C,UAAUk+C,GAAK,SAAUp1C,EAAOpI,EAAGC,GAE5C,MAAY,GAARmI,GAAaA,EAAQ3M,KAAKoM,SAAS/H,OAE5B,IAIPrE,KAAKsN,WAAWX,GAAOpI,EAAIA,OAC3BvE,KAAKsN,WAAWX,GAAOnI,EAAIA,KAUnC49B,EAAOsd,MAAM77C,UAAUqtB,QAAU,WAE7BlxB,KAAKoM,SAAS8kB,UACdlxB,KAAKmhD,WAWT/e,EAAOsd,MAAM77C,UAAU40C,SAAW,SAAUhsC,GAExC,MAAOzM,MAAKoM,SAAS/I,QAAQoJ,IAYjC21B,EAAOsd,MAAM77C,UAAUw1C,QAAU,SAAU2I,EAAUC,GAEjD,GAAIt1C,GAAQ3M,KAAKy4C,SAASuJ,EAE1B,IAAc,KAAVr1C,EACJ,CAC4Bc,SAApBw0C,EAAS55C,SAET45C,EAASlB,OAAOmB,mBAAmBpJ,SAASmJ,EAAUjiD,MACtDiiD,EAAS55C,OAAOuE,YAAYq1C,GAExBA,EAAS55C,iBAAkB+5B,GAAOsd,OAElCuC,EAAS55C,OAAO84C,UAIxB,IAAIjqB,GAAO8qB,CAMX,OAJAhiD,MAAK62C,OAAO3f,GAEZl3B,KAAKkhD,MAAMe,EAAUt1C,GAEduqB,IAafkL,EAAOsd,MAAM77C,UAAUs+C,YAAc,SAAU11C,EAAOkW,GAElD,GAAI2Y,GAAM3Y,EAAIte,MAEd,OAAY,KAARi3B,GAAa3Y,EAAI,IAAMlW,IAEhB,EAEM,IAAR6uB,GAAa3Y,EAAI,IAAMlW,IAASkW,EAAI,IAAMlW,GAAMkW,EAAI,KAElD,EAEM,IAAR2Y,GAAa3Y,EAAI,IAAMlW,IAASkW,EAAI,IAAMlW,GAAMkW,EAAI,KAAOA,EAAI,IAAMlW,GAAMkW,EAAI,IAAIA,EAAI,KAErF,EAEM,IAAR2Y,GAAa3Y,EAAI,IAAMlW,IAASkW,EAAI,IAAMlW,GAAMkW,EAAI,KAAOA,EAAI,IAAMlW,GAAMkW,EAAI,IAAIA,EAAI,KAAOA,EAAI,IAAMlW,GAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAEhI,GAGJ,GAoBXyf,EAAOsd,MAAM77C,UAAU8gC,YAAc,SAAUl4B,EAAOkW,EAAKpZ,EAAO64C,EAAWC,GAgBzE,GAdqB,mBAAVA,KAAyBA,GAAQ,GAE5CD,EAAYA,GAAa,GAYpBpiD,KAAKmiD,YAAY11C,EAAOkW,MAAU0/B,GAASD,EAAY,GAExD,OAAO,CAGX,IAAI9mB,GAAM3Y,EAAIte,MAmCd,OAjCY,KAARi3B,EAEkB,IAAd8mB,EAAmB31C,EAAMkW,EAAI,IAAMpZ,EACjB,GAAb64C,EAAkB31C,EAAMkW,EAAI,KAAOpZ,EACtB,GAAb64C,EAAkB31C,EAAMkW,EAAI,KAAOpZ,EACtB,GAAb64C,EAAkB31C,EAAMkW,EAAI,KAAOpZ,EACtB,GAAb64C,IAAkB31C,EAAMkW,EAAI,KAAOpZ,GAE/B,IAAR+xB,EAEa,IAAd8mB,EAAmB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAMpZ,EACzB,GAAb64C,EAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,KAAOpZ,EAC9B,GAAb64C,EAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,KAAOpZ,EAC9B,GAAb64C,EAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,KAAOpZ,EAC9B,GAAb64C,IAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,KAAOpZ,GAEvC,IAAR+xB,EAEa,IAAd8mB,EAAmB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAMpZ,EACjC,GAAb64C,EAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOpZ,EACtC,GAAb64C,EAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOpZ,EACtC,GAAb64C,EAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOpZ,EACtC,GAAb64C,IAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOpZ,GAE/C,IAAR+xB,IAEa,IAAd8mB,EAAmB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAMpZ,EACzC,GAAb64C,EAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOpZ,EAC9C,GAAb64C,EAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOpZ,EAC9C,GAAb64C,EAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOpZ,EAC9C,GAAb64C,IAAkB31C,EAAMkW,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOpZ,KAGjE,GAcX64B,EAAOsd,MAAM77C,UAAUy+C,cAAgB,SAAU71C,EAAOkW,EAAKpZ,EAAO84C,GAKhE,MAHqB,mBAAVA,KAAyBA,GAAQ,IAGvCjgB,EAAOgC,MAAMC,YAAY53B,EAAOkW,IAAQ0/B,GAElC,EAGPjgB,EAAOgC,MAAMC,YAAY53B,EAAOkW,KAASpZ,GAElC,GAGJ,GAkBX64B,EAAOsd,MAAM77C,UAAUyF,IAAM,SAAUmD,EAAOkW,EAAKpZ,EAAOg5C,EAAYC,EAAcJ,EAAWC,GAS3F,MAPqB,mBAAVA,KAAyBA,GAAQ,GAE5C1/B,EAAMA,EAAIhO,MAAM,KAEU,mBAAf4tC,KAA8BA,GAAa,GAC1B,mBAAjBC,KAAgCA,GAAe,IAErDD,KAAe,GAAUA,GAAc91C,EAAMuzC,SAAYwC,KAAiB,GAAUA,GAAgB/1C,EAAMxE,SAEpGjI,KAAK2kC,YAAYl4B,EAAOkW,EAAKpZ,EAAO64C,EAAWC,GAF1D,QAsBJjgB,EAAOsd,MAAM77C,UAAU60C,OAAS,SAAU/1B,EAAKpZ,EAAOg5C,EAAYC,EAAcJ,EAAWC,GAE7D,mBAAfE,KAA8BA,GAAa,GAC1B,mBAAjBC,KAAgCA,GAAe,GACrC,mBAAVH,KAAyBA,GAAQ,GAE5C1/B,EAAMA,EAAIhO,MAAM,KAChBytC,EAAYA,GAAa,CAEzB,KAAK,GAAIj+C,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,MAE3Co+C,GAAeA,GAAcviD,KAAKoM,SAASjI,GAAG67C,UAAawC,GAAiBA,GAAgBxiD,KAAKoM,SAASjI,GAAG8D,UAE/GjI,KAAK2kC,YAAY3kC,KAAKoM,SAASjI,GAAIwe,EAAKpZ,EAAO64C,EAAWC,IAsBtEjgB,EAAOsd,MAAM77C,UAAU4+C,eAAiB,SAAU9/B,EAAKpZ,EAAOg5C,EAAYC,EAAcJ,EAAWC,GAErE,mBAAfE,KAA8BA,GAAa,GAC1B,mBAAjBC,KAAgCA,GAAe,GACrC,mBAAVH,KAAyBA,GAAQ,GAE5CD,EAAYA,GAAa,CAEzB,KAAK,GAAIj+C,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,MAE3Co+C,GAAeA,GAAcviD,KAAKoM,SAASjI,GAAG67C,UAAawC,GAAiBA,GAAgBxiD,KAAKoM,SAASjI,GAAG8D,WAE3GjI,KAAKoM,SAASjI,YAAci+B,GAAOsd,MAEnC1/C,KAAKoM,SAASjI,GAAGs+C,eAAe9/B,EAAKpZ,EAAOg5C,EAAYC,EAAcJ,EAAWC,GAIjFriD,KAAK2kC,YAAY3kC,KAAKoM,SAASjI,GAAIwe,EAAIhO,MAAM,KAAMpL,EAAO64C,EAAWC,KAkBrFjgB,EAAOsd,MAAM77C,UAAU6+C,SAAW,SAAU//B,EAAKpZ,EAAOg5C,EAAYC,EAAcH,GAEpD,mBAAfE,KAA8BA,GAAa,GAC1B,mBAAjBC,KAAgCA,GAAe,GACrC,mBAAVH,KAAyBA,GAAQ,EAE5C,KAAK,GAAIl+C,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjD,KAAMo+C,GAAeA,GAAcviD,KAAKoM,SAASjI,GAAG67C,UAAawC,GAAiBA,GAAgBxiD,KAAKoM,SAASjI,GAAG8D,WAE1GjI,KAAKsiD,cAActiD,KAAKoM,SAASjI,GAAIwe,EAAKpZ,EAAO84C,GAElD,OAAO,CAKnB,QAAO,GAcXjgB,EAAOsd,MAAM77C,UAAU8+C,OAAS,SAAUC,EAAUrlB,EAAQglB,EAAYC,GAEpExiD,KAAK04C,OAAOkK,EAAUrlB,EAAQglB,EAAYC,EAAc,IAc5DpgB,EAAOsd,MAAM77C,UAAUg/C,OAAS,SAAUD,EAAUrlB,EAAQglB,EAAYC,GAEpExiD,KAAK04C,OAAOkK,EAAUrlB,EAAQglB,EAAYC,EAAc,IAc5DpgB,EAAOsd,MAAM77C,UAAUi/C,YAAc,SAAUF,EAAUrlB,EAAQglB,EAAYC,GAEzExiD,KAAK04C,OAAOkK,EAAUrlB,EAAQglB,EAAYC,EAAc,IAc5DpgB,EAAOsd,MAAM77C,UAAUk/C,UAAY,SAAUH,EAAUrlB,EAAQglB,EAAYC,GAEvExiD,KAAK04C,OAAOkK,EAAUrlB,EAAQglB,EAAYC,EAAc,IAa5DpgB,EAAOsd,MAAM77C,UAAUm/C,cAAgB,SAAU3oC,EAAU4oC,GAIvD,IAAK,GAFD3/C,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,GAEzCG,EAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAE7CnE,KAAKoM,SAASjI,GAAGq0C,SAAWyK,GAAejjD,KAAKoM,SAASjI,GAAGkW,IAE5Dra,KAAKoM,SAASjI,GAAGkW,GAAU5W,MAAMzD,KAAKoM,SAASjI,GAAIb,IAe/D8+B,EAAOsd,MAAM77C,UAAUq/C,kBAAoB,SAAUz2C,EAAO4N,EAAUhW,GAIlE,GAAc,GAAVA,GAEA,GAAIoI,EAAM4N,EAAS,IAEf,MAAO5N,GAAM4N,EAAS,QAGzB,IAAc,GAAVhW,GAEL,GAAIoI,EAAM4N,EAAS,IAAIA,EAAS,IAE5B,MAAO5N,GAAM4N,EAAS,IAAIA,EAAS,QAGtC,IAAc,GAAVhW,GAEL,GAAIoI,EAAM4N,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAEzC,MAAO5N,GAAM4N,EAAS,IAAIA,EAAS,IAAIA,EAAS,QAGnD,IAAc,GAAVhW,GAEL,GAAIoI,EAAM4N,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAEtD,MAAO5N,GAAM4N,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAAIA,EAAS,QAKjE,IAAI5N,EAAM4N,GAEN,MAAO5N,GAAM4N,EAIrB,QAAO,GAaX+nB,EAAOsd,MAAM77C,UAAUw0C,QAAU,SAAU8K,EAAQryC,GAE/C,GAAsB,mBAAXqyC,GAAX,CAMAA,EAASA,EAAOxuC,MAAM,IAEtB,IAAIyuC,GAAeD,EAAO9+C,MAE1B,IAAuB,mBAAZyM,IAAuC,OAAZA,GAAgC,KAAZA,EAEtDA,EAAU,SAKV,IAAuB,gBAAZA,GACX,CACIA,EAAUA,EAAQ6D,MAAM,IACxB,IAAI0uC,GAAgBvyC,EAAQzM,OAQpC,IAAK,GAJDf,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,GAC9CqW,EAAW,KACXy8B,EAAkB,KAEb3yC,EAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDkW,EAAWra,KAAKkjD,kBAAkBljD,KAAKoM,SAASjI,GAAIg/C,EAAQC,GAExDtyC,GAAWuJ,GAEXy8B,EAAkB92C,KAAKkjD,kBAAkBljD,KAAKoM,SAASjI,GAAI2M,EAASuyC,GAEhEhpC,GAEAA,EAAS5W,MAAMqzC,EAAiBxzC,IAG/B+W,GAELA,EAAS5W,MAAMzD,KAAKoM,SAASjI,GAAIb,KAW7C8+B,EAAOsd,MAAM77C,UAAUuzC,UAAY,WAE/B,IAAKp3C,KAAKw4C,SAAWx4C,KAAKqI,OAAOmwC,OAG7B,MADAx4C,MAAKsjD,cAAgB,IACd,CAKX,KAFA,GAAIn/C,GAAInE,KAAKoM,SAAS/H,OAEfF,KAEHnE,KAAKoM,SAASjI,GAAGizC,WAGrB,QAAO,GASXhV,EAAOsd,MAAM77C,UAAU2V,OAAS,WAI5B,IAFA,GAAIrV,GAAInE,KAAKoM,SAAS/H,OAEfF,KAEHnE,KAAKoM,SAASjI,GAAGqV,UAUzB4oB,EAAOsd,MAAM77C,UAAUu5C,WAAa,WAGT,IAAnBp9C,KAAKwgD,OAAO,KAEZxgD,KAAKuE,EAAIvE,KAAKmyC,KAAKyB,OAAOnxC,KAAK8B,EAAIvE,KAAKogD,aAAa77C,EACrDvE,KAAKwE,EAAIxE,KAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAIxE,KAAKogD,aAAa57C,EAKzD,KAFA,GAAIL,GAAInE,KAAKoM,SAAS/H,OAEfF,KAEHnE,KAAKoM,SAASjI,GAAGi5C,cAmBzBhb,EAAOsd,MAAM77C,UAAUyyB,OAAS,SAASitB,EAAWC,GAKhD,IAJA,GAAI72C,GAAQ,GACRtI,EAASrE,KAAKoM,SAAS/H,OACvB4S,EAAS,GAAImrB,GAAOmW,YAEhB5rC,EAAQtI,GAAQ,CACpB,GAAIoI,GAAQzM,KAAKoM,SAASO,KACtB62C,GAAgBA,GAAe/2C,EAAM+rC,SAClC+K,EAAU92C,EAAOE,EAAO3M,KAAKoM,WAC5B6K,EAAO+xB,IAAIv8B,GAIvB,MAAOwK,IAcXmrB,EAAOsd,MAAM77C,UAAU8oC,QAAU,SAAUtyB,EAAUy8B,EAAiB0M,GAEvC,mBAAhBA,KAA+BA,GAAc,EAExD,IAAIlgD,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,EAClDV,GAAKqoB,QAAQ,KAEb,KAAK,GAAIxnB,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,MAE5Cq/C,GAAgBA,GAAexjD,KAAKoM,SAASjI,GAAGq0C,UAEjDl1C,EAAK,GAAKtD,KAAKoM,SAASjI,GACxBkW,EAAS5W,MAAMqzC,EAAiBxzC,KAe5C8+B,EAAOsd,MAAM77C,UAAU4/C,cAAgB,SAAUppC,EAAUy8B,GAEvD,GAAIxzC,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,EAClDV,GAAKqoB,QAAQ,MAEb3rB,KAAK0jD,QAAQ,UAAU,EAAMthB,EAAOsd,MAAMgB,aAAcrmC,EAAUy8B,EAAiBxzC,IAavF8+B,EAAOsd,MAAM77C,UAAU8/C,aAAe,SAAUtpC,EAAUy8B,GAEtD,GAAIxzC,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,EAClDV,GAAKqoB,QAAQ,MAEb3rB,KAAK0jD,QAAQ,SAAS,EAAMthB,EAAOsd,MAAMgB,aAAcrmC,EAAUy8B,EAAiBxzC,IAatF8+B,EAAOsd,MAAM77C,UAAU+/C,YAAc,SAAUvpC,EAAUy8B,GAErD,GAAIxzC,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,EAClDV,GAAKqoB,QAAQ,MAEb3rB,KAAK0jD,QAAQ,SAAS,EAAOthB,EAAOsd,MAAMgB,aAAcrmC,EAAUy8B,EAAiBxzC,IAYvF8+B,EAAOsd,MAAM77C,UAAUggD,KAAO,SAAUl3C,EAAOm3C,GAEvC9jD,KAAKoM,SAAS/H,OAAS,IAMN,mBAAVsI,KAAyBA,EAAQ,KACvB,mBAAVm3C,KAAyBA,EAAQ1hB,EAAOsd,MAAMkB,gBAEzD5gD,KAAKugD,cAAgB5zC,EAIjB3M,KAAKoM,SAASy3C,KAFdC,IAAU1hB,EAAOsd,MAAMkB,eAEJ5gD,KAAK+jD,qBAAqBj0C,KAAK9P,MAI/BA,KAAKgkD,sBAAsBl0C,KAAK9P,OAGvDA,KAAKmhD,YAYT/e,EAAOsd,MAAM77C,UAAUogD,WAAa,SAAUC,EAAapzC,GAEnD9Q,KAAKoM,SAAS/H,OAAS,IAM3BrE,KAAKoM,SAASy3C,KAAKK,EAAYp0C,KAAKgB,IAEpC9Q,KAAKmhD,YAWT/e,EAAOsd,MAAM77C,UAAUkgD,qBAAuB,SAAU1+C,EAAGC,GAEvD,MAAID,GAAErF,KAAKugD,eAAiBj7C,EAAEtF,KAAKugD,eAExB,GAEFl7C,EAAErF,KAAKugD,eAAiBj7C,EAAEtF,KAAKugD,eAE7B,EAIHl7C,EAAE+f,EAAI9f,EAAE8f,EAED,GAIA,GAanBgd,EAAOsd,MAAM77C,UAAUmgD,sBAAwB,SAAU3+C,EAAGC,GAExD,MAAID,GAAErF,KAAKugD,eAAiBj7C,EAAEtF,KAAKugD,eAExB,EAEFl7C,EAAErF,KAAKugD,eAAiBj7C,EAAEtF,KAAKugD,eAE7B,GAIA,GAkBfne,EAAOsd,MAAM77C,UAAU6/C,QAAU,SAAU/gC,EAAKpZ,EAAO46C,EAAY9pC,EAAUy8B,EAAiBxzC,GAE1F,GAAI6gD,IAAe/hB,EAAOsd,MAAMgB,cAAyC,IAAzB1gD,KAAKoM,SAAS/H,OAE1D,MAAO,EAGa,oBAAbgW,KAEPA,GAAW,EAKf,KAAK,GAFDmjB,GAAQ,EAEHr5B,EAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjD,GAAInE,KAAKoM,SAASjI,GAAGwe,KAASpZ,IAE1Bi0B,IAEInjB,IAEA/W,EAAK,GAAKtD,KAAKoM,SAASjI,GACxBkW,EAAS5W,MAAMqzC,EAAiBxzC,IAGhC6gD,IAAe/hB,EAAOsd,MAAMiB,cAE5B,MAAO3gD,MAAKoM,SAASjI,EAKjC,OAAIggD,KAAe/hB,EAAOsd,MAAMgB,aAErBljB,EAEF2mB,IAAe/hB,EAAOsd,MAAMiB,aAE1B,KAFN,QAcTve,EAAOsd,MAAM77C,UAAUugD,eAAiB,SAAU3N,GAO9C,MALqB,iBAAVA,KAEPA,GAAQ,GAGLz2C,KAAK0jD,QAAQ,SAAUjN,EAAOrU,EAAOsd,MAAMiB,eAWtDve,EAAOsd,MAAM77C,UAAUwgD,cAAgB,WAEnC,MAAOrkD,MAAK0jD,QAAQ,SAAS,EAAMthB,EAAOsd,MAAMiB,eAWpDve,EAAOsd,MAAM77C,UAAUygD,aAAe,WAElC,MAAOtkD,MAAK0jD,QAAQ,SAAS,EAAOthB,EAAOsd,MAAMiB,eAUrDve,EAAOsd,MAAM77C,UAAU0gD,OAAS,WAE5B,MAAIvkD,MAAKoM,SAAS/H,OAAS,EAEhBrE,KAAKoM,SAASpM,KAAKoM,SAAS/H,OAAS,GAFhD,QAaJ+9B,EAAOsd,MAAM77C,UAAU2gD,UAAY,WAE/B,MAAIxkD,MAAKoM,SAAS/H,OAAS,EAEhBrE,KAAKoM,SAAS,GAFzB,QAaJg2B,EAAOsd,MAAM77C,UAAU4gD,YAAc,WAEjC,MAAOzkD,MAAK0jD,QAAQ,SAAS,EAAMthB,EAAOsd,MAAMgB,eAUpDte,EAAOsd,MAAM77C,UAAU6gD,UAAY,WAE/B,MAAO1kD,MAAK0jD,QAAQ,SAAS,EAAOthB,EAAOsd,MAAMgB,eAYrDte,EAAOsd,MAAM77C,UAAU8gD,UAAY,SAAU/uB,EAAYvxB,GAErD,MAA6B,KAAzBrE,KAAKoM,SAAS/H,OAEP,MAGXuxB,EAAaA,GAAc,EAC3BvxB,EAASA,GAAUrE,KAAKoM,SAAS/H,OAE1B+9B,EAAO+C,WAAWyf,cAAc5kD,KAAKoM,SAAUwpB,EAAYvxB,KActE+9B,EAAOsd,MAAM77C,UAAUgzC,OAAS,SAAUpqC,EAAOP,EAAS40C,GAKtD,GAHuB,mBAAZ50C,KAA2BA,GAAU,GAC1B,mBAAX40C,KAA0BA,GAAS,GAEjB,IAAzB9gD,KAAKoM,SAAS/H,QAAiD,KAAjCrE,KAAKoM,SAAS/I,QAAQoJ,GAEpD,OAAO,CAGNq0C,KAAUr0C,EAAMs0C,QAAWt0C,EAAMo4C,cAElCp4C,EAAMs0C,OAAOmB,mBAAmBpJ,SAASrsC,EAAOzM,KAGpD,IAAIgO,GAAUhO,KAAK4M,YAAYH,EAc/B,OAZAzM,MAAKmhD,UAEDnhD,KAAKmgD,SAAW1zC,GAEhBzM,KAAKk4C,OAGLhsC,GAAW8B,GAEXA,EAAQ9B,SAAQ,IAGb,GAYXk2B,EAAOsd,MAAM77C,UAAU4zC,UAAY,SAAUvrC,EAAS40C,GAKlD,GAHuB,mBAAZ50C,KAA2BA,GAAU,GAC1B,mBAAX40C,KAA0BA,GAAS,GAEjB,IAAzB9gD,KAAKoM,SAAS/H,OAAlB,CAKA,EACA,EACSy8C,GAAU9gD,KAAKoM,SAAS,GAAG20C,QAE5B/gD,KAAKoM,SAAS,GAAG20C,OAAOmB,mBAAmBpJ,SAAS94C,KAAKoM,SAAS,GAAIpM,KAG1E,IAAIgO,GAAUhO,KAAK4M,YAAY5M,KAAKoM,SAAS,GAEzCF,IAAW8B,GAEXA,EAAQ9B,SAAQ,SAGjBlM,KAAKoM,SAAS/H,OAAS,EAE9BrE,MAAKmgD,OAAS,OAalB/d,EAAOsd,MAAM77C,UAAUihD,cAAgB,SAAUlvB,EAAYhoB,EAAU1B,EAAS40C,GAM5E,GAJwB,mBAAblzC,KAA4BA,EAAW5N,KAAKoM,SAAS/H,OAAS,GAClD,mBAAZ6H,KAA2BA,GAAU,GAC1B,mBAAX40C,KAA0BA,GAAS,GAEjB,IAAzB9gD,KAAKoM,SAAS/H,OAAlB,CAKA,GAAIuxB,EAAahoB,GAAyB,EAAbgoB,GAAkBhoB,EAAW5N,KAAKoM,SAAS/H,OAEpE,OAAO,CAKX,KAFA,GAAIF,GAAIyJ,EAEDzJ,GAAKyxB,GACZ,EACSkrB,GAAU9gD,KAAKoM,SAASjI,GAAG48C,QAE5B/gD,KAAKoM,SAASjI,GAAG48C,OAAOmB,mBAAmBpJ,SAAS94C,KAAKoM,SAASjI,GAAInE,KAG1E,IAAIgO,GAAUhO,KAAK4M,YAAY5M,KAAKoM,SAASjI,GAEzC+H,IAAW8B,GAEXA,EAAQ9B,SAAQ,GAGhBlM,KAAKmgD,SAAWngD,KAAKoM,SAASjI,KAE9BnE,KAAKmgD,OAAS,MAGlBh8C,IAGJnE,KAAKmhD,YAWT/e,EAAOsd,MAAM77C,UAAUqI,QAAU,SAAU64C,EAAiBC,GAEtC,OAAdhlD,KAAKmyC,MAAiBnyC,KAAKigD,gBAEA,mBAApB8E,KAAmCA,GAAkB,GAC5C,mBAATC,KAAwBA,GAAO,GAE1ChlD,KAAKsgD,UAAUxH,SAAS94C,KAAM+kD,EAAiBC,GAE/ChlD,KAAKy3C,UAAUsN,GAEf/kD,KAAKmgD,OAAS,KACdngD,KAAKgM,QAAU,KAEVg5C,IAEGhlD,KAAKqI,QAELrI,KAAKqI,OAAOuE,YAAY5M,MAG5BA,KAAKmyC,KAAO,KACZnyC,KAAKw4C,QAAS,KAUtBrvC,OAAOC,eAAeg5B,EAAOsd,MAAM77C,UAAW,SAE1CwF,IAAK,WAED,MAAOrJ,MAAK0jD,QAAQ,UAAU,EAAMthB,EAAOsd,MAAMgB,iBAWzDv3C,OAAOC,eAAeg5B,EAAOsd,MAAM77C,UAAW,UAE1CwF,IAAK,WAED,MAAOrJ,MAAKoM,SAAS/H,UAY7B8E,OAAOC,eAAeg5B,EAAOsd,MAAM77C,UAAW,SAE1CwF,IAAK,WACD,MAAO+4B,GAAOlgC,KAAKqnC,SAASvpC,KAAK+H,WAGrCuB,IAAK,SAASC,GACVvJ,KAAK+H,SAAWq6B,EAAOlgC,KAAKkmC,SAAS7+B,MAa7CJ,OAAOC,eAAeg5B,EAAOsd,MAAM77C,UAAW,iBAE1CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAEAvJ,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAKogD,aAAa92C,IAAItJ,KAAKuE,EAAGvE,KAAKwE,IAInCxE,KAAKwgD,OAAO,GAAK,KAyD7Bpe,EAAO6iB,MAAQ,SAAU9S,GAErB/P,EAAOsd,MAAM37C,KAAK/D,KAAMmyC,EAAM,KAAM,WAAW,GAS/CnyC,KAAK6K,OAAS,GAAIu3B,GAAOl7B,UAAU,EAAG,EAAGirC,EAAKhrC,MAAOgrC,EAAK/qC,QAK1DpH,KAAK4zC,OAAS,KAMd5zC,KAAKklD,cAAe,EAKpBllD,KAAKsM,OAAS6lC,EAAKhrC,MAKnBnH,KAAKuM,QAAU4lC,EAAK/qC,QAIxBg7B,EAAO6iB,MAAMphD,UAAYsF,OAAOkD,OAAO+1B,EAAOsd,MAAM77C,WACpDu+B,EAAO6iB,MAAMphD,UAAUsB,YAAci9B,EAAO6iB,MAQ5C7iB,EAAO6iB,MAAMphD,UAAUqyC,KAAO,WAE1Bl2C,KAAK4zC,OAAS,GAAIxR,GAAO8P,OAAOlyC,KAAKmyC,KAAM,EAAG,EAAG,EAAGnyC,KAAKmyC,KAAKhrC,MAAOnH,KAAKmyC,KAAK/qC,QAE/EpH,KAAK4zC,OAAO3jB,cAAgBjwB,KAE5BA,KAAK4zC,OAAOxtC,MAAQpG,KAAKoG,MAEzBpG,KAAKmyC,KAAKyB,OAAS5zC,KAAK4zC,OAExB5zC,KAAKmyC,KAAK7pC,MAAMkE,SAASxM,OAc7BoiC,EAAO6iB,MAAMphD,UAAUshD,UAAY,SAAU5gD,EAAGC,EAAG2C,EAAOC,GAEtDpH,KAAKklD,cAAe,EACpBllD,KAAKsM,OAASnF,EACdnH,KAAKuM,QAAUnF,EAEfpH,KAAK6K,OAAOw8B,MAAM9iC,EAAGC,EAAG2C,EAAOC,GAE3BpH,KAAK4zC,OAAO/oC,QAGZ7K,KAAK4zC,OAAO/oC,OAAOw8B,MAAM9iC,EAAGC,EAAGtC,KAAKgT,IAAI/N,EAAOnH,KAAKmyC,KAAKhrC,OAAQjF,KAAKgT,IAAI9N,EAAQpH,KAAKmyC,KAAK/qC,SAGhGpH,KAAKmyC,KAAKkC,QAAQb,oBAItBpR,EAAO6iB,MAAMphD,UAAUiI,OAAS,SAAU3E,EAAOC,GAIzCpH,KAAKklD,eAED/9C,EAAQnH,KAAKsM,SAEbnF,EAAQnH,KAAKsM,QAGblF,EAASpH,KAAKuM,UAEdnF,EAASpH,KAAKuM,UAItBvM,KAAK6K,OAAO1D,MAAQA,EACpBnH,KAAK6K,OAAOzD,OAASA,EAErBpH,KAAKmyC,KAAKyB,OAAOJ,mBAEjBxzC,KAAKmyC,KAAKkC,QAAQb,oBAStBpR,EAAO6iB,MAAMphD,UAAU+wC,SAAW,WAG9B50C,KAAKkM,SAAQ,GAAM,IAgBvBk2B,EAAO6iB,MAAMphD,UAAUuhD,KAAO,SAAUtxB,EAAQ0C,EAAS6uB,EAAWC,EAAYC,GAErD,mBAAZ/uB,KAA2BA,EAAU,GACvB,mBAAd6uB,KAA6BA,GAAY,GAC1B,mBAAfC,KAA8BA,GAAa,GAC9B,mBAAbC,KAA4BA,GAAW,GAE7CF,GAsBDvxB,EAAOvpB,YAEH+6C,IAEKxxB,EAAOvvB,EAAIuvB,EAAO/qB,eAAe5B,MAASnH,KAAK6K,OAAOtG,EAEvDuvB,EAAOvvB,EAAIvE,KAAK6K,OAAOq7B,MAElBpS,EAAOvvB,EAAIvE,KAAK6K,OAAOq7B,QAE5BpS,EAAOvvB,EAAIvE,KAAK6K,OAAOs7B,OAI3Bof,IAEKzxB,EAAOtvB,EAAIsvB,EAAO/qB,eAAe3B,OAAUpH,KAAK6K,OAAOm9B,IAExDlU,EAAOtvB,EAAIxE,KAAK6K,OAAOo9B,OAElBnU,EAAOtvB,EAAIxE,KAAK6K,OAAOo9B,SAE5BnU,EAAOtvB,EAAIxE,KAAK6K,OAAOm9B,QA1C3Bsd,GAAcxxB,EAAOvvB,EAAIiyB,EAAUx2B,KAAK6K,OAAOtG,EAE/CuvB,EAAOvvB,EAAIvE,KAAK6K,OAAOq7B,MAAQ1P,EAE1B8uB,GAAcxxB,EAAOvvB,EAAIiyB,EAAUx2B,KAAK6K,OAAOq7B,QAEpDpS,EAAOvvB,EAAIvE,KAAK6K,OAAOs7B,KAAO3P,GAG9B+uB,GAAYzxB,EAAOtvB,EAAIgyB,EAAUx2B,KAAK6K,OAAOm9B,IAE7ClU,EAAOtvB,EAAIxE,KAAK6K,OAAOo9B,OAASzR,EAE3B+uB,GAAYzxB,EAAOtvB,EAAIgyB,EAAUx2B,KAAK6K,OAAOo9B,SAElDnU,EAAOtvB,EAAIxE,KAAK6K,OAAOm9B,IAAMxR,KAsCzCrtB,OAAOC,eAAeg5B,EAAO6iB,MAAMphD,UAAW,SAE1CwF,IAAK,WACD,MAAOrJ,MAAK6K,OAAO1D,OAGvBmC,IAAK,SAAUC,GAEPA,EAAQvJ,KAAKmyC,KAAKhrC,QAElBoC,EAAQvJ,KAAKmyC,KAAKhrC,OAGtBnH,KAAK6K,OAAO1D,MAAQoC,EACpBvJ,KAAKsM,OAAS/C,EACdvJ,KAAKklD,cAAe,KAU5B/7C,OAAOC,eAAeg5B,EAAO6iB,MAAMphD,UAAW,UAE1CwF,IAAK,WACD,MAAOrJ,MAAK6K,OAAOzD,QAGvBkC,IAAK,SAAUC,GAEPA,EAAQvJ,KAAKmyC,KAAK/qC,SAElBmC,EAAQvJ,KAAKmyC,KAAK/qC,QAGtBpH,KAAK6K,OAAOzD,OAASmC,EACrBvJ,KAAKuM,QAAUhD,EACfvJ,KAAKklD,cAAe,KAW5B/7C,OAAOC,eAAeg5B,EAAO6iB,MAAMphD,UAAW,WAE1CwF,IAAK,WACD,MAAOrJ,MAAK6K,OAAOy9B,aAU3Bn/B,OAAOC,eAAeg5B,EAAO6iB,MAAMphD,UAAW,WAE1CwF,IAAK,WACD,MAAOrJ,MAAK6K,OAAO29B,cAU3Br/B,OAAOC,eAAeg5B,EAAO6iB,MAAMphD,UAAW,WAE1CwF,IAAK,WAED,MAAIrJ,MAAK6K,OAAOtG,EAAI,EAETvE,KAAKmyC,KAAKmC,IAAIkR,eAAexlD,KAAK6K,OAAOtG,EAAIvE,KAAK6K,OAAO1D,MAAQjF,KAAKirB,IAAIntB,KAAK6K,OAAOtG,IAItFvE,KAAKmyC,KAAKmC,IAAIkR,eAAexlD,KAAK6K,OAAOtG,EAAGvE,KAAK6K,OAAO1D,UAY3EgC,OAAOC,eAAeg5B,EAAO6iB,MAAMphD,UAAW,WAE1CwF,IAAK,WAED,MAAIrJ,MAAK6K,OAAOrG,EAAI,EAETxE,KAAKmyC,KAAKmC,IAAIkR,eAAexlD,KAAK6K,OAAOrG,EAAIxE,KAAK6K,OAAOzD,OAASlF,KAAKirB,IAAIntB,KAAK6K,OAAOrG,IAIvFxE,KAAKmyC,KAAKmC,IAAIkR,eAAexlD,KAAK6K,OAAOrG,EAAGxE,KAAK6K,OAAOzD,WA2B3Eg7B,EAAOqjB,SAAW,SAAUC,EAASv+C,EAAOC,GAKxCpH,KAAKmyC,KAAOuT,EAAQvT,KAKpBnyC,KAAK0lD,QAAUA,EAGf1lD,KAAKmH,MAAQA,EACbnH,KAAKoH,OAASA,EAEdpH,KAAK2lD,aAAe,GAAIvjB,GAAOl7B,UAAU,EAAG,EAAGC,EAAOC,GACtDpH,KAAK4lD,YAAc,GAAIxjB,GAAOl7B,UAAU,EAAG,EAAGC,EAAOC,GACrDpH,KAAK6lD,WAAa,GAAIzjB,GAAOl7B,UAAU,EAAG,EAAGC,EAAOC,GACpDpH,KAAK8lD,WAAa,GAAI1jB,GAAOl7B,UAAU,EAAG,EAAGC,EAAOC,GAMpDpH,KAAK+lD,eAAiB,GAAI3jB,GAAOn+B,MAAM,EAAG,GAC1CjE,KAAKgmD,cAAgB,GAAI5jB,GAAOn+B,MAAM,EAAG,GACzCjE,KAAKimD,aAAe,GAAI7jB,GAAOn+B,MAAM,EAAG,GACxCjE,KAAKkmD,aAAe,GAAI9jB,GAAOn+B,MAAM,EAAG,GAMxCjE,KAAKmmD,YAAc,GAAI/jB,GAAOn+B,MAAM,EAAG,GACvCjE,KAAKomD,WAAa,GAAIhkB,GAAOn+B,MAAM,EAAG,GACtCjE,KAAKqmD,mBAAqB,GAAIjkB,GAAOn+B,MAAM,EAAG,GAC9CjE,KAAKsmD,UAAY,GAAIlkB,GAAOn+B,MAAM,EAAG,GACrCjE,KAAKumD,UAAY,GAAInkB,GAAOn+B,MAAM,EAAG,GAErCjE,KAAKwmD,YAAc,EACnBxmD,KAAKymD,aAAe,EACpBzmD,KAAK0mD,cAAgB,EACrB1mD,KAAK2mD,cAAgB,EAErB3mD,KAAK4mD,OAASz/C,EAAQC,EACtBpH,KAAK6mD,OAASz/C,EAASD,EAEvBnH,KAAK8mD,WAAa,EAElB9mD,KAAK+mD,WAIT3kB,EAAOqjB,SAAS5hD,WASZ4vC,QAAS,SAAUtsC,EAAOC,GAGtBpH,KAAKmH,MAAQA,EACbnH,KAAKoH,OAASA,EAEdpH,KAAK4mD,OAASz/C,EAAQC,EACtBpH,KAAK6mD,OAASz/C,EAASD,EAEvBnH,KAAKumD,UAAY,GAAInkB,GAAOn+B,MAAM,EAAG,GAErCjE,KAAK8lD,WAAW3+C,MAAQnH,KAAKmH,MAC7BnH,KAAK8lD,WAAW1+C,OAASpH,KAAKoH,OAE9BpH,KAAKg6B,WAeTgtB,kBAAmB,SAAU7/C,EAAOC,EAAQgF,EAAU66C,GAExB,mBAAfA,KAA8BA,GAAa,GAEtDjnD,KAAKwmD,YAAcr/C,EACnBnH,KAAKymD,aAAer/C,EAEpBpH,KAAK2lD,aAAax+C,MAAQA,EAC1BnH,KAAK2lD,aAAav+C,OAASA,CAE3B,IAAI8/C,GAAQ,GAAI9kB,GAAO+kB,UAAUnnD,KAAMA,KAAK+lD,eAAgB/lD,KAAK2lD,aAAc3lD,KAAKmmD,YAcpF,OAZIc,IAEAjnD,KAAKmyC,KAAKC,MAAMpJ,IAAIke,GAGxBlnD,KAAK+mD,OAAOziD,KAAK4iD,GAEO,mBAAb96C,IAAgD,aAAbA,IAE1C86C,EAAMjG,YAAY70C,GAGf86C,GAWXE,iBAAkB,SAAUh7C,EAAU66C,GAER,mBAAfA,KAA8BA,GAAa,EAEtD,IAAIC,GAAQ,GAAI9kB,GAAO+kB,UAAUnnD,KAAMA,KAAKgmD,cAAehmD,KAAK4lD,YAAa5lD,KAAKomD,WAclF,OAZIa,IAEAjnD,KAAKmyC,KAAKC,MAAMpJ,IAAIke,GAGxBlnD,KAAK+mD,OAAOziD,KAAK4iD,GAEO,mBAAb96C,IAAgD,aAAbA,IAE1C86C,EAAMjG,YAAY70C,GAGf86C,GAWXG,gBAAiB,SAAUj7C,GAEvB,GAAI86C,GAAQ,GAAI9kB,GAAO+kB,UAAUnnD,KAAMA,KAAKimD,aAAcjmD,KAAK6lD,WAAY7lD,KAAKomD,WAWhF,OATApmD,MAAKmyC,KAAKC,MAAMpJ,IAAIke,GAEpBlnD,KAAK+mD,OAAOziD,KAAK4iD,GAEO,mBAAb96C,IAEP86C,EAAMjG,YAAY70C,GAGf86C,GAWXI,iBAAkB,SAAUl7C,GAExB,GAAI86C,GAAQ,GAAI9kB,GAAO+kB,UAAUnnD,KAAMA,KAAKkmD,aAAclmD,KAAK8lD,WAAY9lD,KAAKumD,UAWhF,OATAvmD,MAAKmyC,KAAKC,MAAMpJ,IAAIke,GAEpBlnD,KAAK+mD,OAAOziD,KAAK4iD,GAEO,mBAAb96C,IAEP86C,EAAMjG,YAAY70C,GAGf86C,GASX7+B,MAAO,WAIH,IAFA,GAAIlkB,GAAInE,KAAK+mD,OAAO1iD,OAEbF,KAEEnE,KAAK+mD,OAAO5iD,GAAGojD,UAGhBvnD,KAAK+mD,OAAO5iD,GAAGwD,SAAW,KAC1B3H,KAAK+mD,OAAO5iD,GAAGiC,MAAQ,KACvBpG,KAAK+mD,OAAOjjD,MAAMK,EAAG,KAajCqjD,SAAU,SAAUrgD,EAAOC,GAEvBpH,KAAK4mD,OAASz/C,EAAQC,EACtBpH,KAAK6mD,OAASz/C,EAASD,EAEvBnH,KAAKg6B,QAAQ7yB,EAAOC,IASxB4yB,QAAS,WAELh6B,KAAK8mD,WAAa5kD,KAAK23B,IAAK75B,KAAK0lD,QAAQt+C,OAASpH,KAAKoH,OAAUpH,KAAK0lD,QAAQv+C,MAAQnH,KAAKmH,OAE3FnH,KAAK4lD,YAAYz+C,MAAQjF,KAAKwlC,MAAM1nC,KAAKmH,MAAQnH,KAAK8mD,YACtD9mD,KAAK4lD,YAAYx+C,OAASlF,KAAKwlC,MAAM1nC,KAAKoH,OAASpH,KAAK8mD,YAExD9mD,KAAKomD,WAAW98C,IAAItJ,KAAK4lD,YAAYz+C,MAAQnH,KAAKmH,MAAOnH,KAAK4lD,YAAYx+C,OAASpH,KAAKoH,QACxFpH,KAAKqmD,mBAAmB/8C,IAAItJ,KAAKmH,MAAQnH,KAAK4lD,YAAYz+C,MAAOnH,KAAKoH,OAASpH,KAAK4lD,YAAYx+C,QAEhGpH,KAAKsmD,UAAUh9C,IAAItJ,KAAK6lD,WAAW1+C,MAAQnH,KAAKmH,MAAOnH,KAAK6lD,WAAWz+C,OAASpH,KAAKoH,QAErFpH,KAAK6lD,WAAW1+C,MAAQjF,KAAKwlC,MAAM1nC,KAAK0lD,QAAQv+C,MAAQnH,KAAKqmD,mBAAmB9hD,GAChFvE,KAAK6lD,WAAWz+C,OAASlF,KAAKwlC,MAAM1nC,KAAK0lD,QAAQt+C,OAASpH,KAAKqmD,mBAAmB7hD,GAElFxE,KAAK4lD,YAAYza,SAASnrC,KAAK0lD,QAAQ76C,OAAOqxB,QAASl8B,KAAK0lD,QAAQ76C,OAAOsxB,SAC3En8B,KAAK8lD,WAAW3a,SAASnrC,KAAK0lD,QAAQ76C,OAAOqxB,QAASl8B,KAAK0lD,QAAQ76C,OAAOsxB,SAE1En8B,KAAKgmD,cAAc18C,IAAItJ,KAAK4lD,YAAYrhD,EAAGvE,KAAK4lD,YAAYphD,GAC5DxE,KAAKkmD,aAAa58C,IAAItJ,KAAK8lD,WAAWvhD,EAAGvE,KAAK8lD,WAAWthD,IAI7DijD,UAAW,SAAU3zB,GAEjB9zB,KAAK0lD,QAAQgC,YAAY5zB,GAEzBA,EAAOvvB,EAAIvE,KAAK0lD,QAAQ76C,OAAOqxB,QAC/BpI,EAAOtvB,EAAIxE,KAAK0lD,QAAQ76C,OAAOsxB,SASnCub,MAAO,WAUH13C,KAAKmyC,KAAKuF,MAAMvkC,KAAKnT,KAAK4lD,YAAYz+C,MAAQ,MAAQnH,KAAK4lD,YAAYx+C,OAAQpH,KAAK4lD,YAAYrhD,EAAI,EAAGvE,KAAK4lD,YAAYphD,EAAI,IAC5HxE,KAAKmyC,KAAKuF,MAAMiQ,KAAK3nD,KAAK4lD,YAAa,oBAAoB,KAYnExjB,EAAOqjB,SAAS5hD,UAAUsB,YAAci9B,EAAOqjB,SAuB/CrjB,EAAO+kB,UAAY,SAAUzB,EAAS/9C,EAAUkD,EAAQzE,GAEpDg8B,EAAOsd,MAAM37C,KAAK/D,KAAM0lD,EAAQvT,KAAM,KAAM,cAAgBuT,EAAQvT,KAAKmC,IAAIsT,QAAQ,GAKrF5nD,KAAK0lD,QAAUA,EAAQA,QAKvB1lD,KAAK6nD,KAAOnC,EAOZ1lD,KAAKunD,SAAU,EAGfvnD,KAAK2H,SAAWA,EAChB3H,KAAK6K,OAASA,EACd7K,KAAKoG,MAAQA,EAEbpG,KAAK8nD,QAAUj9C,EAAOi9C,QACtB9nD,KAAK+nD,UAAY,GAAI3lB,GAAOn+B,MAAM4G,EAAOy9B,UAAW,GACpDtoC,KAAKgoD,SAAWn9C,EAAOm9C,SAEvBhoD,KAAKioD,WAAap9C,EAAOo9C,WACzBjoD,KAAKkoD,aAAe,GAAI9lB,GAAOn+B,MAAM4G,EAAOy9B,UAAWz9B,EAAOo9B,QAC9DjoC,KAAKmoD,YAAct9C,EAAOs9C,aAI9B/lB,EAAO+kB,UAAUtjD,UAAYsF,OAAOkD,OAAO+1B,EAAOsd,MAAM77C,WACxDu+B,EAAO+kB,UAAUtjD,UAAUsB,YAAci9B,EAAO+kB,UAEhD/kB,EAAO+kB,UAAUtjD,UAAUiI,OAAS,aAGpCs2B,EAAO+kB,UAAUtjD,UAAU6zC,MAAQ,WAE/B13C,KAAKmyC,KAAKuF,MAAMvkC,KAAKnT,KAAK6K,OAAO1D,MAAQ,MAAQnH,KAAK6K,OAAOzD,OAAQpH,KAAK6K,OAAOtG,EAAI,EAAGvE,KAAK6K,OAAOrG,EAAI,IACxGxE,KAAKmyC,KAAKuF,MAAMiQ,KAAK3nD,KAAK6K,OAAQ,oBAAoB,GAEtD7K,KAAKmyC,KAAKuF,MAAMiQ,KAAK3nD,KAAK8nD,QAAS,wBACnC9nD,KAAKmyC,KAAKuF,MAAMiQ,KAAK3nD,KAAK+nD,UAAW,wBACrC/nD,KAAKmyC,KAAKuF,MAAMiQ,KAAK3nD,KAAKgoD,SAAU,yBAwBxC5lB,EAAOgmB,aAAe,SAAUjW,EAAMhrC,EAAOC,GAQzCpH,KAAKmyC,KAAOA,EAOZnyC,KAAK6nD,KAAO,KAOZ7nD,KAAKmH,MAAQ,EAObnH,KAAKoH,OAAS,EAQdpH,KAAKqoD,SAAW,KAShBroD,KAAKsoD,SAAW,KAQhBtoD,KAAKuoD,UAAY,KASjBvoD,KAAKwoD,UAAY,KASjBxoD,KAAK0mB,OAAS,GAAI0b,GAAOn+B,MAUzBjE,KAAKyoD,gBAAiB,EAUtBzoD,KAAK0oD,eAAgB,EAQrB1oD,KAAK2oD,sBAAuB,EAO5B3oD,KAAK4oD,wBAAyB,EAO9B5oD,KAAK6oD,sBAAuB,EAS5B7oD,KAAK8oD,cAAgB,EAUrB9oD,KAAK+oD,eAAiB,GAAI3mB,GAAOuW,OAUjC34C,KAAKgpD,cAAgB,GAAI5mB,GAAOuW,OAUhC34C,KAAKipD,0BAA4B,GAAI7mB,GAAOuW,OAU5C34C,KAAKkpD,0BAA4B,GAAI9mB,GAAOuW,OAgB5C34C,KAAKmpD,iBAAmB,KAiBxBnpD,KAAKopD,uBAAyB,WAC1B,GAAIC,GAAW/1C,SAASC,cAAc,MAItC,OAHA81C,GAASj2C,MAAMk2C,OAAS,IACxBD,EAASj2C,MAAMojB,QAAU,IACzB6yB,EAASj2C,MAAMm2C,WAAa,OACrBF,GASXrpD,KAAKwpD,yBAA2B,KAOhCxpD,KAAKypD,gBAAkB,GAAIrnB,GAAOuW,OAOlC34C,KAAK0pD,gBAAkB,GAAItnB,GAAOuW,OAQlC34C,KAAK2pD,iBAAmB,GAAIvnB,GAAOuW,OAUnC34C,KAAK4pD,kBAAoBxnB,EAAOub,IAAIkM,uBAOpC7pD,KAAK+hC,YAAc,GAAIK,GAAOn+B,MAAM,EAAG,GAQvCjE,KAAK8pD,oBAAsB,GAAI1nB,GAAOn+B,MAAM,EAAG,GAO/CjE,KAAKspD,QAAUnjB,KAAM,EAAG6B,IAAK,EAAG9B,MAAO,EAAG+B,OAAQ,EAAG1jC,EAAG,EAAGC,EAAG,GAO9DxE,KAAK6K,OAAS,GAAIu3B,GAAOl7B,UAOzBlH,KAAK+pD,YAAc,EAOnB/pD,KAAKgqD,kBAAoB,EAQzBhqD,KAAKswB,MAAQ,KAObtwB,KAAKiqD,mBACDhiB,QAAQ,EACR/B,OAAO,GAmBXlmC,KAAKkqD,eACDC,oBAAoB,EACpBC,oBAAqB,KACrBC,WAAW,EACXC,SAAU,KACVC,4BAA4B,EAC5BC,kBAAkB,GAQtBxqD,KAAKyqD,WAAaroB,EAAOgmB,aAAasC,SAOtC1qD,KAAK2qD,qBAAuBvoB,EAAOgmB,aAAasC,SAOhD1qD,KAAK4qD,gBAAiB,EAWtB5qD,KAAK6qD,WAAa,KAOlB7qD,KAAK8qD,kBAAoB,GAAI1oB,GAAOn+B,MAAM,EAAG,GAS7CjE,KAAK+qD,oBAAsB,IAiB3B/qD,KAAKgrD,aAAe,GAAI5oB,GAAOuW,OAO/B34C,KAAKwnD,SAAW,KAOhBxnD,KAAKirD,gBAAkB,KAOvBjrD,KAAKkrD,mBAAqB,KAO1BlrD,KAAKmrD,UAAY,GAAI/oB,GAAOl7B,UAO5BlH,KAAKorD,iBAAmB,GAAIhpB,GAAOn+B,MAAM,EAAG,GAO5CjE,KAAKqrD,YAAc,EASnBrrD,KAAKsrD,gBAAkB,EAOvBtrD,KAAKurD,qBAAuB,IAO5BvrD,KAAKwrD,cAAgB,GAAIppB,GAAOl7B,UAOhClH,KAAKyrD,wBAA0B,GAAIrpB,GAAOl7B,UAO1ClH,KAAK0rD,sBAAwB,GAAItpB,GAAOl7B,UAEpCirC,EAAKsL,QAELz9C,KAAK09C,YAAYvL,EAAKsL,QAG1Bz9C,KAAK2rD,WAAWxkD,EAAOC;EAW3Bg7B,EAAOgmB,aAAawD,UAAY,EAUhCxpB,EAAOgmB,aAAasC,SAAW,EAQ/BtoB,EAAOgmB,aAAayD,SAAW,EAW/BzpB,EAAOgmB,aAAa0D,OAAS,EAU7B1pB,EAAOgmB,aAAa2D,WAAa,EAGjC3pB,EAAOgmB,aAAavkD,WAQhBqyC,KAAM,WAIF,GAAI8V,GAAShsD,KAAKkqD,aAElB8B,GAAO7B,mBAAqBnqD,KAAKmyC,KAAKyM,OAAOqN,aAAejsD,KAAKmyC,KAAKyM,OAAOsN,SAGxElsD,KAAKmyC,KAAKyM,OAAOuN,MAASnsD,KAAKmyC,KAAKyM,OAAOwN,QAAWpsD,KAAKmyC,KAAKyM,OAAOyN,UAIpEL,EAAO1B,SAFPtqD,KAAKmyC,KAAKyM,OAAO0N,UAAYtsD,KAAKmyC,KAAKyM,OAAO2N,OAE5B,GAAInqB,GAAOn+B,MAAM,EAAG,GAIpB,GAAIm+B,GAAOn+B,MAAM,EAAG,IAM1C+nD,EAAO5B,oBAFPpqD,KAAKmyC,KAAKyM,OAAOyN,QAEY,SAIA,EAKjC,IAAIxO,GAAQ79C,IAEZA,MAAKwsD,mBAAqB,SAASl8B,GAC/B,MAAOutB,GAAM4O,kBAAkBn8B,IAGnCtwB,KAAK0sD,cAAgB,SAASp8B,GAC1B,MAAOutB,GAAM8O,aAAar8B,IAI9B5sB,OAAOkZ,iBAAiB,oBAAqB5c,KAAKwsD,oBAAoB,GACtE9oD,OAAOkZ,iBAAiB,SAAU5c,KAAK0sD,eAAe,GAElD1sD,KAAKkqD,cAAcC,qBAEnBnqD,KAAK4sD,kBAAoB,SAASt8B,GAC9B,MAAOutB,GAAMgP,iBAAiBv8B,IAGlCtwB,KAAK8sD,iBAAmB,SAASx8B,GAC7B,MAAOutB,GAAMkP,gBAAgBz8B,IAGjChd,SAASsJ,iBAAiB,yBAA0B5c,KAAK4sD,mBAAmB,GAC5Et5C,SAASsJ,iBAAiB,sBAAuB5c,KAAK4sD,mBAAmB,GACzEt5C,SAASsJ,iBAAiB,qBAAsB5c,KAAK4sD,mBAAmB,GACxEt5C,SAASsJ,iBAAiB,mBAAoB5c,KAAK4sD,mBAAmB,GAEtEt5C,SAASsJ,iBAAiB,wBAAyB5c,KAAK8sD,kBAAkB,GAC1Ex5C,SAASsJ,iBAAiB,qBAAsB5c,KAAK8sD,kBAAkB,GACvEx5C,SAASsJ,iBAAiB,oBAAqB5c,KAAK8sD,kBAAkB,GACtEx5C,SAASsJ,iBAAiB,kBAAmB5c,KAAK8sD,kBAAkB,IAGxE9sD,KAAKmyC,KAAKkE,SAASrN,IAAIhpC,KAAKgtD,aAAchtD,MAI1CoiC,EAAOub,IAAIC,UAAU59C,KAAKmyC,KAAK9+B,OAAQrT,KAAK0mB,QAE5C1mB,KAAK6K,OAAOw8B,MAAMrnC,KAAK0mB,OAAOniB,EAAGvE,KAAK0mB,OAAOliB,EAAGxE,KAAKmH,MAAOnH,KAAKoH,QAEjEpH,KAAKitD,YAAYjtD,KAAKmyC,KAAKhrC,MAAOnH,KAAKmyC,KAAK/qC,QAG5CpH,KAAK4pD,kBAAoBxnB,EAAOub,IAAIkM,qBAAqB7pD,KAAKkqD,cAAcE,sBAWhF1M,YAAa,SAAUD,GAEfA,EAAkB,YAElBz9C,KAAK2K,UAAY8yC,EAAkB,WAGnCA,EAA4B,sBAE5Bz9C,KAAKktD,oBAAsBzP,EAA4B,qBAGvDA,EAAyB,mBAEzBz9C,KAAKmpD,iBAAmB1L,EAAyB,mBAezDkO,WAAY,SAAUxkD,EAAOC,GAEzB,GAAI2C,GACAwxB,EAAO,GAAI6G,GAAOl7B,SAEG,MAArBlH,KAAKmyC,KAAK9pC,SAEsB,gBAArBrI,MAAKmyC,KAAK9pC,OAGjB0B,EAASuJ,SAAS65C,eAAentD,KAAKmyC,KAAK9pC,QAEtCrI,KAAKmyC,KAAK9pC,QAAwC,IAA9BrI,KAAKmyC,KAAK9pC,OAAOg+B,WAG1Ct8B,EAAS/J,KAAKmyC,KAAK9pC,SAKtB0B,GAaD/J,KAAK6qD,WAAa9gD,EAClB/J,KAAK4qD,gBAAiB,EAEtB5qD,KAAKotD,gBAAgBptD,KAAKwrD,eAE1BjwB,EAAKp0B,MAAQnH,KAAKwrD,cAAcrkD,MAChCo0B,EAAKn0B,OAASpH,KAAKwrD,cAAcpkD,OAEjCpH,KAAK0mB,OAAOpd,IAAItJ,KAAKwrD,cAAcjnD,EAAGvE,KAAKwrD,cAAchnD,KAlBzDxE,KAAK6qD,WAAa,KAClB7qD,KAAK4qD,gBAAiB,EAEtBrvB,EAAKp0B,MAAQzD,OAAOkiC,WACpBrK,EAAKn0B,OAAS1D,OAAOmiC,YAErB7lC,KAAK0mB,OAAOpd,IAAI,EAAG,GAevB,IAAI+jD,GAAW,EACXC,EAAY,CAEK,iBAAVnmD,GAEPkmD,EAAWlmD,GAKXnH,KAAK8qD,kBAAkBvmD,EAAIqT,SAASzQ,EAAO,IAAM,IACjDkmD,EAAW9xB,EAAKp0B,MAAQnH,KAAK8qD,kBAAkBvmD,GAG7B,gBAAX6C,GAEPkmD,EAAYlmD,GAKZpH,KAAK8qD,kBAAkBtmD,EAAIoT,SAASxQ,EAAQ,IAAM,IAClDkmD,EAAY/xB,EAAKn0B,OAASpH,KAAK8qD,kBAAkBtmD,GAGrDxE,KAAKmrD,UAAU9jB,MAAM,EAAG,EAAGgmB,EAAUC,GAErCttD,KAAK6nD,KAAO,GAAIzlB,GAAOqjB,SAASzlD,KAAMqtD,EAAUC,GAEhDttD,KAAKutD,iBAAiBF,EAAUC,GAAW,IAS/CN,aAAc,WAGVhtD,KAAKwtD,aAAY,IAmBrBP,YAAa,SAAU9lD,EAAOC,GAE1BpH,KAAKmrD,UAAU9jB,MAAM,EAAG,EAAGlgC,EAAOC,GAE9BpH,KAAKytD,mBAAqBrrB,EAAOgmB,aAAa0D,QAE9C9rD,KAAKutD,iBAAiBpmD,EAAOC,GAAQ,GAGzCpH,KAAKwtD,aAAY,IAYrBE,aAAc,SAAUvmD,EAAOC,GAE3BpH,KAAKorD,iBAAiB/jB,MAAMlgC,EAAOC,GACnCpH,KAAKwtD,aAAY,IAmBrBG,kBAAmB,SAAUtzC,EAAUvJ,GAEnC9Q,KAAKwnD,SAAWntC,EAChBra,KAAKirD,gBAAkBn6C,GAY3B88C,iBAAkB,WAEd,IAAKxrB,EAAOl7B,UAAUglC,eAAelsC,KAAMA,KAAKyrD,2BAC3CrpB,EAAOl7B,UAAUglC,eAAelsC,KAAKmyC,KAAMnyC,KAAK0rD,uBACrD,CACI,GAAIvkD,GAAQnH,KAAKmH,MACbC,EAASpH,KAAKoH,MAElBpH,MAAKyrD,wBAAwBpkB,MAAM,EAAG,EAAGlgC,EAAOC,GAChDpH,KAAK0rD,sBAAsBrkB,MAAM,EAAG,EAAGrnC,KAAKmyC,KAAKhrC,MAAOnH,KAAKmyC,KAAK/qC,QAElEpH,KAAK6nD,KAAKL,SAASrgD,EAAOC,GAE1BpH,KAAKgrD,aAAalS,SAAS94C,KAAMmH,EAAOC,GAGpCpH,KAAKytD,mBAAqBrrB,EAAOgmB,aAAa0D,SAE9C9rD,KAAKmyC,KAAKsE,MAAM3qC,OAAO3E,EAAOC,GAC9BpH,KAAKmyC,KAAK4B,KAAKjoC,OAAO3E,EAAOC,MAiBzCymD,UAAW,SAAUxF,EAAUE,EAAWD,EAAUE,GAEhDxoD,KAAKqoD,SAAWA,EAChBroD,KAAKuoD,UAAYA,EAEO,mBAAbD,KAEPtoD,KAAKsoD,SAAWA,GAGK,mBAAdE,KAEPxoD,KAAKwoD,UAAYA,IAWzBpR,UAAW,WAEP,KAAIp3C,KAAKmyC,KAAK+B,KAAKA,KAAQl0C,KAAKqrD,YAAcrrD,KAAKsrD,iBAAnD,CAKA,GAAIwC,GAAe9tD,KAAKsrD,eACxBtrD,MAAKurD,qBAAuBuC,GAAgB,IAAM,EAAI,IAEtD1rB,EAAOub,IAAIC,UAAU59C,KAAKmyC,KAAK9+B,OAAQrT,KAAK0mB,OAE5C,IAAIqnC,GAAY/tD,KAAKwrD,cAAcrkD,MAC/B6mD,EAAahuD,KAAKwrD,cAAcpkD,OAChCyD,EAAS7K,KAAKotD,gBAAgBptD,KAAKwrD,eAEnCyC,EAAgBpjD,EAAO1D,QAAU4mD,GAAaljD,EAAOzD,SAAW4mD,EAGhEE,EAAqBluD,KAAKmuD,wBAAuB,IAEjDF,GAAiBC,KAEbluD,KAAKwnD,UAELxnD,KAAKwnD,SAASzjD,KAAK/D,KAAKirD,gBAAiBpgD,EAAO1D,MAAO0D,EAAOzD,QAGlEpH,KAAKouD,gBAELpuD,KAAK4tD,mBAIT,IAAIS,GAAkC,EAAvBruD,KAAKsrD,eAGhBtrD,MAAKsrD,gBAAkBwC,IAEvBO,EAAWnsD,KAAK23B,IAAIi0B,EAAc9tD,KAAKurD,uBAG3CvrD,KAAKsrD,gBAAkBlpB,EAAOlgC,KAAKmnC,MAAMglB,EAAU,GAAIruD,KAAK+qD,qBAC5D/qD,KAAKqrD,YAAcrrD,KAAKmyC,KAAK+B,KAAKA,OAItCS,YAAa,WAET30C,KAAKo3C,YAGLp3C,KAAKsrD,gBAAkBtrD,KAAK+qD,qBAahCwC,iBAAkB,SAAUpmD,EAAOC,EAAQ0E,GAEvC9L,KAAKmH,MAAQA,EAAQnH,KAAK8qD,kBAAkBvmD,EAC5CvE,KAAKoH,OAASA,EAASpH,KAAK8qD,kBAAkBtmD,EAE9CxE,KAAKmyC,KAAKhrC,MAAQnH,KAAKmH,MACvBnH,KAAKmyC,KAAK/qC,OAASpH,KAAKoH,OAExBpH,KAAKgqD,kBAAoBhqD,KAAKmH,MAAQnH,KAAKoH,OAC3CpH,KAAKsuD,yBAEDxiD,IAGA9L,KAAKmyC,KAAKvnC,SAASkB,OAAO9L,KAAKmH,MAAOnH,KAAKoH,QAG3CpH,KAAKmyC,KAAKyB,OAAOH,QAAQzzC,KAAKmH,MAAOnH,KAAKoH,QAG1CpH,KAAKmyC,KAAKC,MAAMtmC,OAAO9L,KAAKmH,MAAOnH,KAAKoH,UAUhDknD,uBAAwB,WAEpBtuD,KAAK+hC,YAAYx9B,EAAIvE,KAAKmyC,KAAKhrC,MAAQnH,KAAKmH,MAC5CnH,KAAK+hC,YAAYv9B,EAAIxE,KAAKmyC,KAAK/qC,OAASpH,KAAKoH,OAE7CpH,KAAK8pD,oBAAoBvlD,EAAIvE,KAAKmH,MAAQnH,KAAKmyC,KAAKhrC,MACpDnH,KAAK8pD,oBAAoBtlD,EAAIxE,KAAKoH,OAASpH,KAAKmyC,KAAK/qC,OAErDpH,KAAK+pD,YAAc/pD,KAAKmH,MAAQnH,KAAKoH,OAGjCpH,KAAKmyC,KAAK9+B,QAEV+uB,EAAOub,IAAIC,UAAU59C,KAAKmyC,KAAK9+B,OAAQrT,KAAK0mB,QAEhD1mB,KAAK6K,OAAOw8B,MAAMrnC,KAAK0mB,OAAOniB,EAAGvE,KAAK0mB,OAAOliB,EAAGxE,KAAKmH,MAAOnH,KAAKoH,QAG7DpH,KAAKmyC,KAAK2B,OAAS9zC,KAAKmyC,KAAK2B,MAAM1tC,OAEnCpG,KAAKmyC,KAAK2B,MAAM1tC,MAAMihC,MAAMrnC,KAAK+hC,YAAYx9B,EAAGvE,KAAK+hC,YAAYv9B,IAezE+pD,iBAAkB,SAAU9F,EAAgBC,GAEX,mBAAlBA,KAAiCA,GAAgB,GAE5D1oD,KAAKyoD,eAAiBA,EACtBzoD,KAAK0oD,cAAgBA,EAEjB1oD,KAAKmuD,wBAAuB,IAE5BnuD,KAAKwtD,aAAY,IAYzBgB,oBAAqB,SAAUC,GAE3B,MAAoB,qBAAhBA,GAAsD,uBAAhBA,EAE/B,WAEc,sBAAhBA,GAAuD,wBAAhBA,EAErC,YAIA,MAafN,uBAAwB,SAAUO,GAE9B,GAAIC,GAAsB3uD,KAAK4pD,iBAE/B5pD,MAAK4pD,kBAAoBxnB,EAAOub,IAAIkM,qBAAqB7pD,KAAKkqD,cAAcE,oBAE5E,IAAIwE,GAAUD,IAAwB3uD,KAAK4pD,iBAc3C,IAZIgF,IAEI5uD,KAAK6uD,YAEL7uD,KAAK+oD,eAAejQ,SAAS94C,KAAKyuD,aAAa,GAAM,GAIrDzuD,KAAKgpD,cAAclQ,SAAS94C,KAAKyuD,aAAa,GAAO,IAIzDG,GAAWF,EACf,CACI,GAAII,GAAe9uD,KAAK2oD,qBACpBoG,EAAgB/uD,KAAKyoD,iBAAmBzoD,KAAK6uD,aAC5C7uD,KAAK0oD,gBAAkB1oD,KAAKgvD,UAE7BF,KAAiBC,IACjB/uD,KAAK2oD,qBAAuBoG,EAC5BH,GAAU,EAENG,EAEA/uD,KAAKipD,0BAA0BnQ,WAI/B94C,KAAKkpD,0BAA0BpQ,YAK3C,MAAO8V,IAWXnC,kBAAmB,SAAUn8B,GAEzBtwB,KAAKswB,MAAQA,EAEbtwB,KAAKwtD,aAAY,IAWrBb,aAAc,SAAUr8B,GAEpBtwB,KAAKswB,MAAQA,EAEbtwB,KAAKwtD,aAAY,IAQrByB,UAAW,WAEP,GAAI3E,GAAWtqD,KAAKkqD,cAAcI,QAC9BA,IAEA5mD,OAAO4mD,SAASA,EAAS/lD,EAAG+lD,EAAS9lD,IAY7Cw1B,QAAS,WAELh6B,KAAKivD,YACLjvD,KAAKwtD,aAAY,IAcrBY,cAAe,WAEX,GAAIzjD,GAAY3K,KAAKytD,gBAErB,OAAI9iD,KAAcy3B,EAAOgmB,aAAa0D,WAElC9rD,MAAKkvD,cAITlvD,KAAKivD,YAEDjvD,KAAKkqD,cAAcK,6BAInBj3C,SAAS67C,gBAAgB/7C,MAAMm1C,UAAY7kD,OAAOmiC,YAAc,MAGhE7lC,KAAK2oD,qBAEL3oD,KAAKovD,aAIDzkD,IAAcy3B,EAAOgmB,aAAawD,UAElC5rD,KAAKqvD,cAEA1kD,IAAcy3B,EAAOgmB,aAAayD,SAElC7rD,KAAKsvD,cAAiBtvD,KAAK4qD,iBAC5B5qD,KAAKkqD,cAAcM,iBAWnBxqD,KAAKuvD,cANLvvD,KAAKuvD,YAAW,GAChBvvD,KAAKwvD,cACLxvD,KAAKuvD,cAOJ5kD,IAAcy3B,EAAOgmB,aAAasC,UAEvC1qD,KAAKmH,MAAQnH,KAAKmyC,KAAKhrC,MACvBnH,KAAKoH,OAASpH,KAAKmyC,KAAK/qC,QAEnBuD,IAAcy3B,EAAOgmB,aAAa2D,aAEvC/rD,KAAKmH,MAAQnH,KAAKmyC,KAAKhrC,MAAQnH,KAAKorD,iBAAiB7mD,EACrDvE,KAAKoH,OAASpH,KAAKmyC,KAAK/qC,OAASpH,KAAKorD,iBAAiB5mD,OAI/DxE,MAAKyvD,iBAeTrC,gBAAiB,SAAUrjD,GAEvB,GAAIc,GAASd,GAAU,GAAIq4B,GAAOl7B,UAC9B2jD,EAAa7qD,KAAKmyC,KAAK9+B,QAAUrT,KAAKmyC,KAAK9+B,OAAOw3C,UAEtD,IAAI7qD,KAAKsvD,eAAiBtvD,KAAKwpD,yBAE3B3+C,EAAOw8B,MAAM,EAAG,EAAG3jC,OAAOgsD,WAAYhsD,OAAOisD,iBAE5C,IAAI3vD,KAAK4qD,iBAAmBC,EAE7BhgD,EAAOw8B,MAAM,EAAG,EAAG3jC,OAAOkiC,WAAYliC,OAAOmiC,iBAGjD,CACI,GAAI+pB,GAAa/E,EAAWgF,uBAE5BhlD,GAAOw8B,MAAMuoB,EAAWzpB,KAAMypB,EAAW5nB,IAAK4nB,EAAWzoD,MAAOyoD,EAAWxoD,OAE3E,IAAI0oD,GAAK9vD,KAAKiqD,iBACV6F,GAAG5pB,QAEHr7B,EAAOq7B,MAAQhkC,KAAK23B,IAAIhvB,EAAOq7B,MAAOxiC,OAAOkiC,aAE7CkqB,EAAG7nB,SAEHp9B,EAAOo9B,OAAS/lC,KAAK23B,IAAIhvB,EAAOo9B,OAAQvkC,OAAOmiC,cAQvD,MAJAh7B,GAAOw8B,MACHnlC,KAAKwlC,MAAM78B,EAAOtG,GAAIrC,KAAKwlC,MAAM78B,EAAOrG,GACxCtC,KAAKwlC,MAAM78B,EAAO1D,OAAQjF,KAAKwlC,MAAM78B,EAAOzD,SAEzCyD,GAcXklD,YAAa,SAAUzK,EAAYC,GAE/B,GAAIyK,GAAehwD,KAAKotD,kBACpB/5C,EAASrT,KAAKmyC,KAAK9+B,OACnBi2C,EAAStpD,KAAKspD,MAElB,IAAIhE,EACJ,CACIgE,EAAOnjB,KAAOmjB,EAAOpjB,MAAQ,CAE7B,IAAI+pB,GAAe58C,EAAOw8C,uBAE1B,IAAI7vD,KAAKmH,MAAQ6oD,EAAa7oD,QAAUnH,KAAK2oD,qBAC7C,CACI,GAAIuH,GAAcD,EAAa9pB,KAAO6pB,EAAazrD,EAC/C4rD,EAAcH,EAAa7oD,MAAQ,EAAMnH,KAAKmH,MAAQ,CAE1DgpD,GAAajuD,KAAKgT,IAAIi7C,EAAY,EAElC,IAAIzpC,GAASypC,EAAaD,CAE1B5G,GAAOnjB,KAAOjkC,KAAKwlC,MAAMhhB,GAG7BrT,EAAOD,MAAMg9C,WAAa9G,EAAOnjB,KAAO,KACpB,IAAhBmjB,EAAOnjB,OAEPmjB,EAAOpjB,QAAU8pB,EAAa7oD,MAAQ8oD,EAAa9oD,MAAQmiD,EAAOnjB,MAClE9yB,EAAOD,MAAMi9C,YAAc/G,EAAOpjB,MAAQ,MAIlD,GAAIqf,EACJ,CACI+D,EAAOthB,IAAMshB,EAAOrhB,OAAS,CAE7B,IAAIgoB,GAAe58C,EAAOw8C,uBAE1B,IAAI7vD,KAAKoH,OAAS4oD,EAAa5oD,SAAWpH,KAAK2oD,qBAC/C,CACI,GAAIuH,GAAcD,EAAajoB,IAAMgoB,EAAaxrD,EAC9C2rD,EAAcH,EAAa5oD,OAAS,EAAMpH,KAAKoH,OAAS,CAE5D+oD,GAAajuD,KAAKgT,IAAIi7C,EAAY,EAElC,IAAIzpC,GAASypC,EAAaD,CAC1B5G,GAAOthB,IAAM9lC,KAAKwlC,MAAMhhB,GAG5BrT,EAAOD,MAAMk9C,UAAYhH,EAAOthB,IAAM,KACnB,IAAfshB,EAAOthB,MAEPshB,EAAOrhB,SAAW+nB,EAAa5oD,OAAS6oD,EAAa7oD,OAASkiD,EAAOthB,KACrE30B,EAAOD,MAAMm9C,aAAejH,EAAOrhB,OAAS,MAKpDqhB,EAAO/kD,EAAI+kD,EAAOnjB,KAClBmjB,EAAO9kD,EAAI8kD,EAAOthB,KAYtBknB,WAAY,WAGRlvD,KAAKwvD,YAAY,GAAI,GAErB,IAAI3kD,GAAS7K,KAAKotD,iBAClBptD,MAAKutD,iBAAiB1iD,EAAO1D,MAAO0D,EAAOzD,QAAQ,IAYvDqoD,aAAc,WAELzvD,KAAK2oD,uBAEN3oD,KAAKmH,MAAQi7B,EAAOlgC,KAAKmnC,MAAMrpC,KAAKmH,MAAOnH,KAAKqoD,UAAY,EAAGroD,KAAKsoD,UAAYtoD,KAAKmH,OACrFnH,KAAKoH,OAASg7B,EAAOlgC,KAAKmnC,MAAMrpC,KAAKoH,OAAQpH,KAAKuoD,WAAa,EAAGvoD,KAAKwoD,WAAaxoD,KAAKoH,SAG7FpH,KAAKwvD,cAEAxvD,KAAKkqD,cAAcG,YAEhBrqD,KAAKsvD,cAAgBtvD,KAAKwpD,yBAE1BxpD,KAAK+vD,aAAY,GAAM,GAIvB/vD,KAAK+vD,YAAY/vD,KAAKwwD,sBAAuBxwD,KAAKywD,sBAI1DzwD,KAAKsuD,0BAWTkB,YAAa,SAAUkB,EAAUC,GAEL,mBAAbD,KAA4BA,EAAW1wD,KAAKmH,MAAQ,MACtC,mBAAdwpD,KAA6BA,EAAY3wD,KAAKoH,OAAS,KAElE,IAAIiM,GAASrT,KAAKmyC,KAAK9+B,MAClBrT,MAAKkqD,cAAcG,YAEpBh3C,EAAOD,MAAMg9C,WAAa,GAC1B/8C,EAAOD,MAAMk9C,UAAY,GACzBj9C,EAAOD,MAAMi9C,YAAc,GAC3Bh9C,EAAOD,MAAMm9C,aAAe,IAEhCl9C,EAAOD,MAAMjM,MAAQupD,EACrBr9C,EAAOD,MAAMhM,OAASupD,GAU1BnD,YAAa,SAAUnL,GACfA,IAEAriD,KAAKwrD,cAAcrkD,MAAQ,EAC3BnH,KAAKwrD,cAAcpkD,OAAS,GAGhCpH,KAAKsrD,gBAAkBtrD,KAAKurD,sBAShCljC,MAAO,SAAU0uB,GAETA,GAEA/2C,KAAK6nD,KAAKx/B,SAWlB+mC,WAAY,WAERpvD,KAAKmH,MAAQzD,OAAOkiC,WACpB5lC,KAAKoH,OAAS1D,OAAOmiC,aAWzB0pB,WAAY,SAAUqB,GAElB,GAII9J,GAJAj8C,EAAS7K,KAAKotD,kBACdjmD,EAAQ0D,EAAO1D,MACfC,EAASyD,EAAOzD,MAKhB0/C,GAFA8J,EAEa1uD,KAAKgT,IAAK9N,EAASpH,KAAKmyC,KAAK/qC,OAAUD,EAAQnH,KAAKmyC,KAAKhrC,OAIzDjF,KAAK23B,IAAKzyB,EAASpH,KAAKmyC,KAAK/qC,OAAUD,EAAQnH,KAAKmyC,KAAKhrC,OAG1EnH,KAAKmH,MAAQjF,KAAKwlC,MAAM1nC,KAAKmyC,KAAKhrC,MAAQ2/C,GAC1C9mD,KAAKoH,OAASlF,KAAKwlC,MAAM1nC,KAAKmyC,KAAK/qC,OAAS0/C,IAWhDuI,YAAa,WAET,GAAIxkD,GAAS7K,KAAKotD,iBAElBptD,MAAKmH,MAAQ0D,EAAO1D,MACpBnH,KAAKoH,OAASyD,EAAOzD,OAEjBpH,KAAKsvD,eAMLtvD,KAAKsoD,WAELtoD,KAAKmH,MAAQjF,KAAK23B,IAAI75B,KAAKmH,MAAOnH,KAAKsoD,WAGvCtoD,KAAKwoD,YAELxoD,KAAKoH,OAASlF,KAAK23B,IAAI75B,KAAKoH,OAAQpH,KAAKwoD,cAmBjDqI,gBAAiB,SAAUluD,EAAWmuD,GAElC,GAAI9wD,KAAKsvD,aAEL,OAAO,CAGX,KAAKtvD,KAAKkqD,cAAcC,mBACxB,CAEI,GAAItM,GAAQ79C,IAIZ,YAHA0a,YAAW,WACPmjC,EAAMkP,mBACP,IAKP,GAAIjZ,GAAQ9zC,KAAKmyC,KAAK2B,KACtB,IAAIA,EAAMid,gBAAkBjd,EAAMkd,eAC7BF,GAAmBA,KAAoB,GAIxC,WAFAhd,GAAMid,cAAcE,mBAChB,kBAAmBjxD,KAAK6wD,gBAAiB7wD,MAAO2C,GAAW,GAI1C,oBAAdA,IAA6B3C,KAAKmyC,KAAK6F,aAAe5V,EAAOG,SAEpEviC,KAAKmyC,KAAK7pC,MAAM4oD,SAAWvuD,EAG/B,IAAI0mD,GAAWrpD,KAAKmpD,gBAEpB,KAAKE,EACL,CACIrpD,KAAKmxD,uBAELnxD,KAAKwpD,yBAA2BxpD,KAAKopD,yBACrCC,EAAWrpD,KAAKwpD,wBAIhB,IAAIn2C,GAASrT,KAAKmyC,KAAK9+B,OACnBhL,EAASgL,EAAOw3C,UACpBxiD,GAAO+oD,aAAa/H,EAAUh2C,GAC9Bg2C,EAASgI,YAAYh+C,GAYzB,MATIrT,MAAKmyC,KAAKyM,OAAO0S,mBAEjBjI,EAASrpD,KAAKmyC,KAAKyM,OAAO2S,mBAAmBC,QAAQC,sBAIrDpI,EAASrpD,KAAKmyC,KAAKyM,OAAO2S,sBAGvB,GAWXG,eAAgB,WAEZ,MAAK1xD,MAAKsvD,cAAiBtvD,KAAKkqD,cAAcC,oBAK9C72C,SAAStT,KAAKmyC,KAAKyM,OAAO+S,qBAEnB,IALI,GAcfR,qBAAsB,WAElB,GAAI9H,GAAWrpD,KAAKwpD,wBACpB,IAAIH,GAAYA,EAASwB,WACzB,CAGI,GAAIxiD,GAASghD,EAASwB,UACtBxiD,GAAO+oD,aAAapxD,KAAKmyC,KAAK9+B,OAAQg2C,GACtChhD,EAAOuE,YAAYy8C,GAGvBrpD,KAAKwpD,yBAA2B,MAYpCoI,eAAgB,SAAUC,GAEtB,GAAIC,KAAkB9xD,KAAKwpD,yBACvBH,EAAWrpD,KAAKwpD,0BAA4BxpD,KAAKmpD,gBAEjD0I,IAEIC,GAAiB9xD,KAAKktD,sBAAwB9qB,EAAOgmB,aAAawD,YAG9DvC,IAAarpD,KAAKmyC,KAAK9+B,SAEvBrT,KAAKkrD,oBACD5sB,YAAa+qB,EAASj2C,MAAMjM,MAC5Bo3B,aAAc8qB,EAASj2C,MAAMhM,QAGjCiiD,EAASj2C,MAAMjM,MAAQ,OACvBkiD,EAASj2C,MAAMhM,OAAS,SAO5BpH,KAAKkrD,qBAEL7B,EAASj2C,MAAMjM,MAAQnH,KAAKkrD,mBAAmB5sB,YAC/C+qB,EAASj2C,MAAMhM,OAASpH,KAAKkrD,mBAAmB3sB,aAEhDv+B,KAAKkrD,mBAAqB,MAI9BlrD,KAAKutD,iBAAiBvtD,KAAKmrD,UAAUhkD,MAAOnH,KAAKmrD,UAAU/jD,QAAQ,GACnEpH,KAAKwvD,gBAYb3C,iBAAkB,SAAUv8B,GAExBtwB,KAAKswB,MAAQA,EAETtwB,KAAKsvD,cAELtvD,KAAK4xD,gBAAe,GAEpB5xD,KAAKouD,gBACLpuD,KAAKwtD,aAAY,GAEjBxtD,KAAKypD,gBAAgB3Q,SAAS94C,KAAKmH,MAAOnH,KAAKoH,UAI/CpH,KAAK4xD,gBAAe,GAEpB5xD,KAAKmxD,uBAELnxD,KAAKouD,gBACLpuD,KAAKwtD,aAAY,GAEjBxtD,KAAK0pD,gBAAgB5Q,SAAS94C,KAAKmH,MAAOnH,KAAKoH,UAavD2lD,gBAAiB,SAAUz8B,GAEvBtwB,KAAKswB,MAAQA,EAEbtwB,KAAKmxD,uBAEL5tD,QAAQo0C,KAAK,+FAEb33C,KAAK2pD,iBAAiB7Q,YAmB1BiZ,cAAe,SAAUC,EAASC,GAG9B,MADuB,mBAAZD,KAA2BA,EAAUhyD,KAAKmyC,KAAK9+B,QACnD+uB,EAAOub,IAAIpzC,UAAUynD,EAASC,IAczCC,OAAQ,SAAUC,GAEd,MAAO/vB,GAAOub,IAAIyU,eAAeD,IAmBrCzK,YAAa,SAAU5zB,EAAQ3sB,EAAOC,EAAQirD,GAQ1C,GANqB,mBAAVlrD,KAAyBA,EAAQnH,KAAKmH,OAC3B,mBAAXC,KAA0BA,EAASpH,KAAKoH,QAC1B,mBAAdirD,KAA6BA,GAAY,GAEpDv+B,EAAO1tB,MAAMkD,IAAI,GAEZwqB,EAAO3sB,OAAS,GAAO2sB,EAAO1sB,QAAU,GAAgB,GAATD,GAA0B,GAAVC,EAEhE,MAAO0sB,EAGX,IAAIw+B,GAAUnrD,EACVorD,EAAWz+B,EAAO1sB,OAASD,EAAS2sB,EAAO3sB,MAE3CqrD,EAAW1+B,EAAO3sB,MAAQC,EAAU0sB,EAAO1sB,OAC3CqrD,EAAUrrD,EAEVsrD,EAAgBF,EAAUrrD,CA0B9B,OAtBIurD,GAFAA,EAEeL,GAICA,EAGhBK,GAEA5+B,EAAO3sB,MAAQjF,KAAKmoC,MAAMioB,GAC1Bx+B,EAAO1sB,OAASlF,KAAKmoC,MAAMkoB,KAI3Bz+B,EAAO3sB,MAAQjF,KAAKmoC,MAAMmoB,GAC1B1+B,EAAO1sB,OAASlF,KAAKmoC,MAAMooB,IAOxB3+B,GAWX5nB,QAAS,WAELlM,KAAKmyC,KAAKkE,SAASQ,OAAO72C,KAAKgtD,aAAchtD,MAE7C0D,OAAOwZ,oBAAoB,oBAAqBld,KAAKwsD,oBAAoB,GACzE9oD,OAAOwZ,oBAAoB,SAAUld,KAAK0sD,eAAe,GAErD1sD,KAAKkqD,cAAcC,qBAEnB72C,SAAS4J,oBAAoB,yBAA0Bld,KAAK4sD,mBAAmB,GAC/Et5C,SAAS4J,oBAAoB,sBAAuBld,KAAK4sD,mBAAmB,GAC5Et5C,SAAS4J,oBAAoB,qBAAsBld,KAAK4sD,mBAAmB,GAC3Et5C,SAAS4J,oBAAoB,mBAAoBld,KAAK4sD,mBAAmB,GAEzEt5C,SAAS4J,oBAAoB,wBAAyBld,KAAK8sD,kBAAkB,GAC7Ex5C,SAAS4J,oBAAoB,qBAAsBld,KAAK8sD,kBAAkB,GAC1Ex5C,SAAS4J,oBAAoB,oBAAqBld,KAAK8sD,kBAAkB,GACzEx5C,SAAS4J,oBAAoB,kBAAmBld,KAAK8sD,kBAAkB,MAOnF1qB,EAAOgmB,aAAavkD,UAAUsB,YAAci9B,EAAOgmB,aASnDhmB,EAAOgmB,aAAavkD,UAAU8uD,YAAcvwB,EAAOgmB,aAAavkD,UAAU8oD,aAS1EvqB,EAAOgmB,aAAavkD,UAAU+uD,iBAAmBxwB,EAAOgmB,aAAavkD,UAAU4oD,kBAS/ErqB,EAAOgmB,aAAavkD,UAAU4vC,QAAUrR,EAAOgmB,aAAavkD,UAAU4rD,aAatErtB,EAAOgmB,aAAavkD,UAAUgvD,sBAAwB,WAElD,GAAIjE,GAAU5uD,KAAKmuD,wBAKnB,OAJIS,IAEA5uD,KAAKg6B,UAEF40B,GAYXzlD,OAAOC,eAAeg5B,EAAOgmB,aAAavkD,UAAW,aAEjDwF,IAAK,WAED,MAAOrJ,MAAKyqD,YAIhBnhD,IAAK,SAAUC,GAaX,MAXIA,KAAUvJ,KAAKyqD,aAEVzqD,KAAKsvD,eAENtvD,KAAKutD,iBAAiBvtD,KAAKmrD,UAAUhkD,MAAOnH,KAAKmrD,UAAU/jD,QAAQ,GACnEpH,KAAKwtD,aAAY,IAGrBxtD,KAAKyqD,WAAalhD,GAGfvJ,KAAKyqD,cAYpBthD,OAAOC,eAAeg5B,EAAOgmB,aAAavkD,UAAW,uBAEjDwF,IAAK,WAED,MAAOrJ,MAAK2qD,sBAIhBrhD,IAAK,SAAUC,GAmBX,MAjBIA,KAAUvJ,KAAK2qD,uBAGX3qD,KAAKsvD,cAELtvD,KAAK4xD,gBAAe,GACpB5xD,KAAK2qD,qBAAuBphD,EAC5BvJ,KAAK4xD,gBAAe,GAEpB5xD,KAAKwtD,aAAY,IAIjBxtD,KAAK2qD,qBAAuBphD,GAI7BvJ,KAAK2qD,wBAcpBxhD,OAAOC,eAAeg5B,EAAOgmB,aAAavkD,UAAW,oBAEjDwF,IAAK,WAED,MAAOrJ,MAAKsvD,aAAetvD,KAAK2qD,qBAAuB3qD,KAAKyqD,cAkBpEthD,OAAOC,eAAeg5B,EAAOgmB,aAAavkD,UAAW,yBAEjDwF,IAAK,WAED,MAAOrJ,MAAK4oD,wBAIhBt/C,IAAK,SAAUC,GAEPA,IAAUvJ,KAAK4oD,yBAEf5oD,KAAK4oD,uBAAyBr/C,EAC9BvJ,KAAKwtD,aAAY,OAmB7BrkD,OAAOC,eAAeg5B,EAAOgmB,aAAavkD,UAAW,uBAEjDwF,IAAK,WAED,MAAOrJ,MAAK6oD,sBAIhBv/C,IAAK,SAAUC,GAEPA,IAAUvJ,KAAK6oD,uBAEf7oD,KAAK6oD,qBAAuBt/C,EAC5BvJ,KAAKwtD,aAAY,OAa7BrkD,OAAOC,eAAeg5B,EAAOgmB,aAAavkD,UAAW,gBAEjDwF,IAAK,WACD,SAAUiK,SAA4B,mBAClCA,SAAkC,yBAClCA,SAA+B,sBAC/BA,SAA8B,wBAW1CnK,OAAOC,eAAeg5B,EAAOgmB,aAAavkD,UAAW,cAEjDwF,IAAK,WACD,MAA4D,aAArDrJ,KAAKwuD,oBAAoBxuD,KAAK4pD,sBAW7CzgD,OAAOC,eAAeg5B,EAAOgmB,aAAavkD,UAAW,eAEjDwF,IAAK,WACD,MAA4D,cAArDrJ,KAAKwuD,oBAAoBxuD,KAAK4pD,sBAW7CzgD,OAAOC,eAAeg5B,EAAOgmB,aAAavkD,UAAW,eAEjDwF,IAAK,WAED,MAA6D,aAArDrJ,KAAKwuD,oBAAoBxuD,KAAK4pD,mBAAoC,EAAI,MA4BtFxnB,EAAO0wB,KAAO,SAAU3rD,EAAOC,EAAQwD,EAAUvC,EAAQouC,EAAO/zC,EAAaC,EAAWowD,GAKpF/yD,KAAKkG,GAAKk8B,EAAOC,MAAM/9B,KAAKtE,MAAQ,EAKpCA,KAAKy9C,OAAS,KAKdz9C,KAAK+yD,cAAgBA,EAMrB/yD,KAAKqI,OAAS,GAWdrI,KAAKmH,MAAQ,IAWbnH,KAAKoH,OAAS,IAMdpH,KAAKsM,OAAS,IAMdtM,KAAKuM,QAAU,IAMfvM,KAAK0C,aAAc,EAMnB1C,KAAK2C,WAAY,EAMjB3C,KAAK4C,uBAAwB,EAK7B5C,KAAK4K,SAAW,KAKhB5K,KAAKg4C,WAAa5V,EAAOE,KAKzBtiC,KAAKy2C,MAAQ,KAMbz2C,KAAK42C,UAAW,EAMhB52C,KAAKgzD,WAAY,EAKjBhzD,KAAKizD,IAAM,KAKXjzD,KAAKgpC,IAAM,KAKXhpC,KAAK2zC,KAAO,KAKZ3zC,KAAK6zC,MAAQ,KAKb7zC,KAAK8zC,MAAQ,KAKb9zC,KAAK+zC,KAAO,KAKZ/zC,KAAKg0C,KAAO,KAKZh0C,KAAKkzD,IAAM,KAKXlzD,KAAKoG,MAAQ,KAKbpG,KAAKi0C,MAAQ,KAKbj0C,KAAKsI,MAAQ,KAKbtI,KAAKk0C,KAAO,KAKZl0C,KAAKm0C,OAAS,KAKdn0C,KAAKoyC,MAAQ,KAKbpyC,KAAKq0C,QAAU,KAKfr0C,KAAKs0C,IAAM,KAKXt0C,KAAK4+C,OAAS,KAKd5+C,KAAK4zC,OAAS,KAKd5zC,KAAKqT,OAAS,KAKdrT,KAAK8Q,QAAU,KAKf9Q,KAAK03C,MAAQ,KAKb13C,KAAKo0C,UAAY,KAOjBp0C,KAAKmzD,UAAW,EAOhBnzD,KAAKozD,aAAc,EAOnBpzD,KAAKqzD,UAAY,EAKjBrzD,KAAKm2C,QAAU,KAKfn2C,KAAKq2C,SAAW,KAKhBr2C,KAAKszD,OAAS,KAKdtzD,KAAKuzD,QAAU,KAMfvzD,KAAKwzD,SAAU,EAMfxzD,KAAKyzD,aAAc,EAMnBzzD,KAAK0zD,WAAa,EAMlB1zD,KAAK2zD,WAAa,EAMlB3zD,KAAK4zD,YAAc,EAOnB5zD,KAAK6zD,mBAAqB,GAAIzxB,GAAOuW,OAKrC34C,KAAK8zD,mBAAoB,EAMzB9zD,KAAK+zD,qBAAuB,EAGH,IAArB/vD,UAAUK,QAAwC,gBAAjBL,WAAU,GAE3ChE,KAAK09C,YAAY15C,UAAU,KAI3BhE,KAAKy9C,QAAWuW,aAAa,GAER,mBAAV7sD,KAEPnH,KAAKsM,OAASnF,GAGI,mBAAXC,KAEPpH,KAAKuM,QAAUnF,GAGK,mBAAbwD,KAEP5K,KAAKg4C,WAAaptC,GAGA,mBAAXvC,KAEPrI,KAAKqI,OAASA,GAGS,mBAAhB3F,KAEP1C,KAAK0C,YAAcA,GAGE,mBAAdC,KAEP3C,KAAK2C,UAAYA,GAGrB3C,KAAKs0C,IAAM,GAAIlS,GAAO6xB,sBAAsB15C,KAAKiD,MAAQtb,KAAK4iC,UAAUtwB,aAExExU,KAAKy2C,MAAQ,GAAIrU,GAAOyS,aAAa70C,KAAMy2C,GAG/C,IAAIoH,GAAQ79C,IAqBZ,OAnBAA,MAAKk0D,QAAU,WACX,MAAOrW,GAAM3H,QAGW,aAAxB5iC,SAAS6gD,YAAqD,gBAAxB7gD,SAAS6gD,WAE/CzwD,OAAOgX,WAAW1a,KAAKk0D,QAAS,GAED,mBAAnBxwD,QAAO0wD,SAA4BlxD,UAAsB,YAOrEoQ,SAASsJ,iBAAiB,mBAAoB5c,KAAKk0D,SAAS,GAC5DxwD,OAAOkZ,iBAAiB,OAAQ5c,KAAKk0D,SAAS,IAL9C5gD,SAASsJ,iBAAiB,cAAe5c,KAAKk0D,SAAS,GAQpDl0D,MAIXoiC,EAAO0wB,KAAKjvD,WAQR65C,YAAa,SAAUD,GAEnBz9C,KAAKy9C,OAASA,EAEuB,mBAA1BA,GAAoB,cAE3Bz9C,KAAKy9C,OAAOuW,aAAc,GAG1BvW,EAAc,QAEdz9C,KAAKsM,OAASmxC,EAAc,OAG5BA,EAAe,SAEfz9C,KAAKuM,QAAUkxC,EAAe,QAG9BA,EAAiB,WAEjBz9C,KAAKg4C,WAAayF,EAAiB,UAGnCA,EAAe,SAEfz9C,KAAKqI,OAASo1C,EAAe,QAG7BA,EAAoB,cAEpBz9C,KAAK0C,YAAc+6C,EAAoB,aAGvCA,EAAkB,YAElBz9C,KAAK2C,UAAY86C,EAAkB,WAGnCA,EAA8B,wBAE9Bz9C,KAAK4C,sBAAwB66C,EAA8B,uBAG3DA,EAAsB,gBAEtBz9C,KAAK+yD,cAAgBtV,EAAsB,cAG/C,IAAI4W,KAAS95C,KAAKiD,MAAQtb,KAAK4iC,UAAUtwB,WAErCipC,GAAa,OAEb4W,EAAO5W,EAAa,MAGxBz9C,KAAKs0C,IAAM,GAAIlS,GAAO6xB,oBAAoBI,EAE1C,IAAI5d,GAAQ,IAERgH,GAAc,QAEdhH,EAAQgH,EAAc,OAG1Bz9C,KAAKy2C,MAAQ,GAAIrU,GAAOyS,aAAa70C,KAAMy2C,IAU/CP,KAAM,WAEEl2C,KAAK42C,WAKJtjC,SAASghD,MAMVhhD,SAAS4J,oBAAoB,mBAAoBld,KAAKk0D,SACtDxwD,OAAOwZ,oBAAoB,OAAQld,KAAKk0D,SAExCl0D,KAAKm2C,QAAU,GAAI/T,GAAOuW,OAC1B34C,KAAKq2C,SAAW,GAAIjU,GAAOuW,OAC3B34C,KAAKszD,OAAS,GAAIlxB,GAAOuW,OACzB34C,KAAKuzD,QAAU,GAAInxB,GAAOuW,OAE1B34C,KAAK42C,UAAW,EAEhB52C,KAAK4+C,OAAS,GAAIxc,GAAOmyB,OAAOv0D,MAEhCA,KAAKg0C,KAAO5R,EAAOlgC,KAEnBlC,KAAKoG,MAAQ,GAAIg8B,GAAOgmB,aAAapoD,KAAMA,KAAKsM,OAAQtM,KAAKuM,SAC7DvM,KAAKsI,MAAQ,GAAI85B,GAAOrpB,MAAM/Y,MAE9BA,KAAKw0D,gBAELx0D,KAAK4+C,OAAO6V,yBAEZz0D,KAAKoyC,MAAQ,GAAIhQ,GAAO6iB,MAAMjlD,MAC9BA,KAAKgpC,IAAM,GAAI5G,GAAOsyB,kBAAkB10D,MACxCA,KAAK2zC,KAAO,GAAIvR,GAAOuyB,kBAAkB30D,MACzCA,KAAK6zC,MAAQ,GAAIzR,GAAOwyB,MAAM50D,MAC9BA,KAAK+zC,KAAO,GAAI3R,GAAOyyB,OAAO70D,MAC9BA,KAAKk0C,KAAO,GAAI9R,GAAO0yB,KAAK90D,MAC5BA,KAAKm0C,OAAS,GAAI/R,GAAO2yB,aAAa/0D,MACtCA,KAAK8zC,MAAQ,GAAI1R,GAAO4yB,MAAMh1D,MAC9BA,KAAKi0C,MAAQ,GAAI7R,GAAO6yB,aAAaj1D,MACrCA,KAAKq0C,QAAU,GAAIjS,GAAO0d,QAAQ9/C,KAAMA,KAAK+yD,eAC7C/yD,KAAKo0C,UAAY,GAAIhS,GAAO8yB,UAAUl1D,MACtCA,KAAKg9C,QAAU,GAAI5a,GAAO2a,cAAc/8C,MACxCA,KAAKkzD,IAAM,GAAI9wB,GAAO+yB,IAAIn1D,MAE1BA,KAAKk0C,KAAKgC,OACVl2C,KAAKsI,MAAM4tC,OACXl2C,KAAKoyC,MAAM8D,OACXl2C,KAAKoG,MAAM8vC,OACXl2C,KAAK8zC,MAAMoC,OACXl2C,KAAKi0C,MAAMiC,OACXl2C,KAAKy2C,MAAMP,OAEPl2C,KAAKy9C,OAAoB,cAEzBz9C,KAAK03C,MAAQ,GAAItV,GAAOgC,MAAMgxB,MAAMp1D,MACpCA,KAAK03C,MAAMxB,QAGfl2C,KAAKq1D,kBAELr1D,KAAKgzD,WAAY,EAIbhzD,KAAKizD,IAFLjzD,KAAKy9C,QAAUz9C,KAAKy9C,OAAwB,gBAEjC,GAAIrb,GAAOkzB,sBAAsBt1D,KAAMA,KAAKy9C,OAAwB,iBAIpE,GAAIrb,GAAOkzB,sBAAsBt1D,MAAM,GAGtDA,KAAKizD,IAAI7jD,SAlET1L,OAAOgX,WAAW1a,KAAKk0D,QAAS,MA6ExCmB,gBAAiB,WAEb,GAAIv1C,GAAIsiB,EAAOhiC,QACXupB,EAAI,SACJtkB,EAAI,aACJE,EAAI,CAkBR,IAhBIvF,KAAKg4C,aAAe5V,EAAOI,OAE3B7Y,EAAI,QACJpkB,KAEKvF,KAAKg4C,YAAc5V,EAAOK,WAE/B9Y,EAAI,YAGJ3pB,KAAK4+C,OAAO2W,WAEZlwD,EAAI,WACJE,KAGAvF,KAAK4+C,OAAO2N,OAChB,CAWI,IAAK,GAVDjpD,IACA,oBAAsBwc,EAAI,cAAgB7f,KAAKG,QAAU,MAAQupB,EAAI,MAAQtkB,EAAI,4CACjF,sBACA,sBACA,uCACA,sBACA,sBACA,uBAGKlB,EAAI,EAAO,EAAJA,EAAOA,IAIfb,EAAKgB,KAFDiB,EAAJpB,EAEU,mCAIA,mCAIlBZ,SAAQC,IAAIC,MAAMF,QAASD,OAEtBI,QAAgB,SAErBH,QAAQC,IAAI,WAAasc,EAAI,cAAgB7f,KAAKG,QAAU,MAAQupB,EAAI,MAAQtkB,EAAI,wBAW5FmvD,cAAe,WAiCX,GA7BIx0D,KAAKqT,OAFLrT,KAAKy9C,OAAiB,SAERrb,EAAO4b,OAAO3xC,OAAOrM,KAAKmH,MAAOnH,KAAKoH,OAAQpH,KAAKy9C,OAAiB,UAIpErb,EAAO4b,OAAO3xC,OAAOrM,KAAKmH,MAAOnH,KAAKoH,QAGpDpH,KAAKy9C,OAAoB,YAEzBz9C,KAAKqT,OAAOD,MAAQpT,KAAKy9C,OAAoB,YAI7Cz9C,KAAKqT,OAAOD,MAAM,uBAAyB,4BAG3CpT,KAAK4+C,OAAOsN,WAIRlsD,KAAKqT,OAAO4mB,aAFZj6B,KAAKg4C,aAAe5V,EAAOG,QAEA,GAKA,GAI/BviC,KAAKg4C,aAAe5V,EAAOK,UAAYziC,KAAKg4C,aAAe5V,EAAOG,QAAWviC,KAAKg4C,aAAe5V,EAAOE,MAAQtiC,KAAK4+C,OAAO/3B,SAAU,EAC1I,CACI,IAAI7mB,KAAK4+C,OAAOvrC,OAYZ,KAAM,IAAIvG,OAAM,iEAVZ9M,MAAKg4C,aAAe5V,EAAOE,OAE3BtiC,KAAKg4C,WAAa5V,EAAOG,QAG7BviC,KAAK4K,SAAW,GAAI3K,MAAK85B,eAAe/5B,KAAKmH,MAAOnH,KAAKoH,QAAU3E,KAAQzC,KAAKqT,OAAQ3Q,YAAe1C,KAAK0C,YAAaG,WAAc,EAAGC,mBAAqB,IAC/J9C,KAAK8Q,QAAU9Q,KAAK4K,SAASkG,YAUjC9Q,MAAKg4C,WAAa5V,EAAOI,MAEzBxiC,KAAK4K,SAAW,GAAI3K,MAAKytB,cAAc1tB,KAAKmH,MAAOnH,KAAKoH,QAAU3E,KAAQzC,KAAKqT,OAAQ3Q,YAAe1C,KAAK0C,YAAaG,WAAc,EAAGF,UAAa3C,KAAK2C,UAAWC,sBAAyB5C,KAAK4C,wBACpM5C,KAAK8Q,QAAU,IAGf9Q,MAAKg4C,aAAe5V,EAAOK,WAE3BziC,KAAKsI,MAAM4oD,SAAWlxD,KAAK2C,UAE3By/B,EAAO4b,OAAOwX,SAASx1D,KAAKqT,OAAQrT,KAAKqI,QAAQ,GACjD+5B,EAAO4b,OAAOE,eAAel+C,KAAKqT,UAY1CmG,OAAQ,SAAU06B,GAKd,GAHAl0C,KAAKk0C,KAAK16B,OAAO06B,GAGbl0C,KAAK4zD,YAAc,IAAM5zD,KAAK8zD,kBAG1B9zD,KAAKk0C,KAAKA,KAAOl0C,KAAK+zD,uBAGtB/zD,KAAK+zD,qBAAuB/zD,KAAKk0C,KAAKA,KAAO,IAG7Cl0C,KAAK6zD,mBAAmB/a,YAI5B94C,KAAK0zD,WAAa,EAClB1zD,KAAK4zD,YAAc,EAGnB5zD,KAAKy1D,aAAaz1D,KAAKk0C,KAAKwhB,WAAa11D,KAAKk0C,KAAKyhB,gBAGvD,CAEI,GAAIC,GAAkC,IAAvB51D,KAAKk0C,KAAKwhB,WAAsB11D,KAAKk0C,KAAKyhB,UAGzD31D,MAAK0zD,YAAcxxD,KAAKgT,IAAIhT,KAAK23B,IAAe,EAAX+7B,EAAc51D,KAAKk0C,KAAK2hB,SAAU,EAMvE,KAFA,GAAI1kC,GAAQ,EAELnxB,KAAK0zD,YAAckC,IAEtB51D,KAAK0zD,YAAckC,EACnB51D,KAAK81D,YAAY,EAAM91D,KAAKk0C,KAAKyhB,YACjCxkC,KAEInxB,KAAK8zD,mBAA+B,IAAV3iC,KAO9BA,EAAQnxB,KAAK2zD,WAEb3zD,KAAK4zD,cAEAziC,EAAQnxB,KAAK2zD,aAGlB3zD,KAAK4zD,YAAc,GAGvB5zD,KAAK2zD,WAAaxiC,EAGlBnxB,KAAKy1D,aAAaz1D,KAAK0zD,WAAakC,KAY5CE,YAAa,SAAUC,GAEd/1D,KAAKwzD,SAAYxzD,KAAKozD,aAiCvBpzD,KAAKoG,MAAMuuC,cAEX30C,KAAKy2C,MAAM9B,cAEP30C,KAAKy9C,OAAoB,aAEzBz9C,KAAK03C,MAAMN,cArCXp3C,KAAKmzD,WAELnzD,KAAKozD,aAAc,GAGvBpzD,KAAKoG,MAAMgxC,YAEPp3C,KAAKy9C,OAAoB,aAEzBz9C,KAAK03C,MAAMN,YAGfp3C,KAAKq0C,QAAQ+C,YACbp3C,KAAKy2C,MAAMW,UAAU2e,GACrB/1D,KAAKg9C,QAAQ5F,UAAU2e,GACvB/1D,KAAKsI,MAAM8uC,YAEXp3C,KAAKy2C,MAAMj9B,SACXxZ,KAAKsI,MAAMkR,SACXxZ,KAAKi0C,MAAMz6B,SACXxZ,KAAK8zC,MAAMt6B,SACXxZ,KAAKq0C,QAAQ76B,SACbxZ,KAAKo0C,UAAU56B,SACfxZ,KAAKg9C,QAAQxjC,SAEbxZ,KAAKsI,MAAM80C,aACXp9C,KAAKg9C,QAAQI,eAuBrBqY,aAAc,SAAUO,GAGfh2D,KAAKwzD,SAAYxzD,KAAKozD,aAEvBpzD,KAAKm0C,OAAO36B,OAAOw8C,GAGnBh2D,KAAKg4C,YAAc5V,EAAOK,WAE1BziC,KAAKy2C,MAAMsB,YACX/3C,KAAK4K,SAASK,OAAOjL,KAAKsI,OAE1BtI,KAAKg9C,QAAQ/xC,SACbjL,KAAKy2C,MAAMxrC,SACXjL,KAAKg9C,QAAQF,aAET98C,KAAK4+C,OAAOsN,UAAYlsD,KAAKg4C,aAAe5V,EAAOG,QAA8C,IAApCviC,KAAKsI,MAAMg1C,sBAGxEt9C,KAAK8Q,QAAQ2F,SAAS,EAAG,EAAG,EAAG,KAY3Cw/C,WAAY,WAERj2D,KAAKmzD,UAAW,EAChBnzD,KAAKozD,aAAc,EACnBpzD,KAAKqzD,UAAY,GASrB6C,YAAa,WAETl2D,KAAKmzD,UAAW,EAChBnzD,KAAKozD,aAAc,GAUvBz5B,KAAM,WAEF35B,KAAKozD,aAAc,EACnBpzD,KAAKqzD,aASTnnD,QAAS,WAELlM,KAAKizD,IAAIjkD,OAEThP,KAAKy2C,MAAMvqC,UACXlM,KAAKi0C,MAAM/nC,UAEXlM,KAAKoG,MAAM8F,UACXlM,KAAKsI,MAAM4D,UACXlM,KAAK8zC,MAAM5nC,UACXlM,KAAKq0C,QAAQnoC,UAEblM,KAAKy2C,MAAQ,KACbz2C,KAAK6zC,MAAQ,KACb7zC,KAAK8zC,MAAQ,KACb9zC,KAAK+zC,KAAO,KACZ/zC,KAAKi0C,MAAQ,KACbj0C,KAAKsI,MAAQ,KACbtI,KAAKk0C,KAAO,KACZl0C,KAAKoyC,MAAQ,KACbpyC,KAAK42C,UAAW,EAEZ52C,KAAKg4C,aAAe5V,EAAOI,OAE3BviC,KAAKwtB,WAAWztB,KAAK4K,SAASkkB,aAAe,KAE7C9uB,KAAK4K,SAAS6b,WAAa,KAC3BzmB,KAAK4K,SAAS8b,OAAS,KAEvB1mB,KAAK4K,SAAS+H,cAAczG,UAC5BlM,KAAK4K,SAASgE,YAAY1C,UAC1BlM,KAAK4K,SAASqE,YAAY/C,UAC1BlM,KAAK4K,SAASkE,cAAc5C,UAE5BlM,KAAK4K,SAAS+H,cAAgB,KAC9B3S,KAAK4K,SAASgE,YAAc,KAC5B5O,KAAK4K,SAASqE,YAAc,KAC5BjP,KAAK4K,SAASkE,cAAgB,KAE9B9O,KAAK4K,SAASa,GAAK,KACnBzL,KAAK4K,SAASW,cAAgB,KAC9B62B,EAAO4b,OAAOmY,cAAcn2D,KAAKqT,SAIjCrT,KAAK4K,SAASsB,SAAQ,GAG1Bk2B,EAAOC,MAAMriC,KAAKkG,IAAM,MAW5Bk5C,WAAY,SAAU9uB,GAGbtwB,KAAKwzD,UAENxzD,KAAKwzD,SAAU,EACfxzD,KAAKk0C,KAAKkL,aACVp/C,KAAKi0C,MAAMmiB,UACXp2D,KAAKm2C,QAAQ2C,SAASxoB,KAY9B+uB,YAAa,SAAU/uB,GAGftwB,KAAKwzD,UAAYxzD,KAAKyzD,cAEtBzzD,KAAKwzD,SAAU,EACfxzD,KAAKk0C,KAAKmL,cACVr/C,KAAK8zC,MAAMzrB,QACXroB,KAAKi0C,MAAMoiB,YACXr2D,KAAKq2C,SAASyC,SAASxoB,KAY/B4uB,UAAW,SAAU5uB,GAEjBtwB,KAAKszD,OAAOxa,SAASxoB,GAEhBtwB,KAAKsI,MAAM+0C,yBAEZr9C,KAAKo/C,WAAW9uB,IAYxB6uB,UAAW,SAAU7uB,GAEjBtwB,KAAKuzD,QAAQza,SAASxoB,GAEjBtwB,KAAKsI,MAAM+0C,yBAEZr9C,KAAKq/C,YAAY/uB,KAO7B8R,EAAO0wB,KAAKjvD,UAAUsB,YAAci9B,EAAO0wB,KAQ3C3pD,OAAOC,eAAeg5B,EAAO0wB,KAAKjvD,UAAW,UAEzCwF,IAAK,WACD,MAAOrJ,MAAKwzD,SAGhBlqD,IAAK,SAAUC,GAEPA,KAAU,GAENvJ,KAAKwzD,WAAY,IAEjBxzD,KAAKwzD,SAAU,EACfxzD,KAAKi0C,MAAMmiB,UACXp2D,KAAKk0C,KAAKkL,aACVp/C,KAAKm2C,QAAQ2C,SAAS94C,OAE1BA,KAAKyzD,aAAc,IAIfzzD,KAAKwzD,UAELxzD,KAAKwzD,SAAU,EACfxzD,KAAK8zC,MAAMzrB,QACXroB,KAAKi0C,MAAMoiB,YACXr2D,KAAKk0C,KAAKmL,cACVr/C,KAAKq2C,SAASyC,SAAS94C,OAE3BA,KAAKyzD,aAAc,MAyB/BrxB,EAAO4yB,MAAQ,SAAU7iB,GAKrBnyC,KAAKmyC,KAAOA,EAMZnyC,KAAKs2D,UAAY,KAMjBt2D,KAAKu2D,WAAa,KAKlBv2D,KAAKw2D,iBAKLx2D,KAAKy2D,aAAe,KAKpBz2D,KAAK02D,oBAAsB12D,KAM3BA,KAAK22D,SAAW,EAShB32D,KAAK42D,SAAU,EAMf52D,KAAK62D,mBAAqBz0B,EAAO4yB,MAAM8B,oBAMvC92D,KAAK2H,SAAW,KAKhB3H,KAAK+2D,MAAQ,KAOb/2D,KAAKg3D,OAAS,KAKdh3D,KAAKoG,MAAQ,KAMbpG,KAAKi3D,YAAc,GAMnBj3D,KAAKk3D,gBAAkB,EAMvBl3D,KAAKm3D,QAAU,IAMfn3D,KAAKo3D,cAAgB,IAMrBp3D,KAAKq3D,SAAW,IAMhBr3D,KAAKs3D,gBAAkB,IAMvBt3D,KAAKu3D,iBAAmB,IASxBv3D,KAAKw3D,sBAAuB,EAM5Bx3D,KAAKy3D,WAAa,IAQlBz3D,KAAK03D,YAAc,IAKnB13D,KAAK23D,SAAW,KAKhB33D,KAAK43D,SAAW,KAKhB53D,KAAK63D,SAAW,KAKhB73D,KAAK83D,SAAW,KAKhB93D,KAAK+3D,SAAW,KAKhB/3D,KAAKg4D,SAAW,KAKhBh4D,KAAKi4D,SAAW,KAKhBj4D,KAAKk4D,SAAW,KAKhBl4D,KAAKm4D,SAAW,KAKhBn4D,KAAKo4D,UAAY,KASjBp4D,KAAKq4D,YAOLr4D,KAAK+wD,cAAgB,KAKrB/wD,KAAKgxD,aAAe,KAKpBhxD,KAAK+Z,MAAQ,KAKb/Z,KAAKs4D,SAAW,KAKhBt4D,KAAKu4D,MAAQ,KAKbv4D,KAAKw4D,UAAY,KAKjBx4D,KAAKy4D,QAAU,KAMfz4D,KAAK04D,aAAc,EAKnB14D,KAAK24D,OAAS,KAKd34D,KAAK44D,KAAO,KAKZ54D,KAAK64D,MAAQ,KAKb74D,KAAK84D,OAAS,KAMd94D,KAAK+4D,cAAgB,EAMrB/4D,KAAKg5D,iBAAmB,GAAI52B,GAAOmW,UAMnCv4C,KAAKi5D,YAAc,GAAI72B,GAAOn+B,MAM9BjE,KAAKk5D,aAAe,EAMpBl5D,KAAKm5D,aAAe,KAMpBn5D,KAAKo5D,GAAK,EAMVp5D,KAAKq5D,GAAK,GAQdj3B,EAAO4yB,MAAMsE,sBAAwB,EAMrCl3B,EAAO4yB,MAAMuE,sBAAwB,EAMrCn3B,EAAO4yB,MAAM8B,oBAAsB,EAOnC10B,EAAO4yB,MAAMwE,aAAe,GAE5Bp3B,EAAO4yB,MAAMnxD,WAQTqyC,KAAM,WAEFl2C,KAAKgxD,aAAe,GAAI5uB,GAAOq3B,QAAQz5D,KAAKmyC,KAAM,GAClDnyC,KAAK05D,aACL15D,KAAK05D,aAEL15D,KAAK+Z,MAAQ,GAAIqoB,GAAOu3B,MAAM35D,KAAKmyC,MACnCnyC,KAAKs4D,SAAW,GAAIl2B,GAAOw3B,SAAS55D,KAAKmyC,MACzCnyC,KAAKu4D,MAAQ,GAAIn2B,GAAOy3B,MAAM75D,KAAKmyC,MACnCnyC,KAAKw4D,UAAY,GAAIp2B,GAAO03B,UAAU95D,KAAKmyC,MAC3CnyC,KAAKy4D,QAAU,GAAIr2B,GAAO23B,QAAQ/5D,KAAKmyC,MAEvCnyC,KAAK24D,OAAS,GAAIv2B,GAAOuW,OACzB34C,KAAK44D,KAAO,GAAIx2B,GAAOuW,OACvB34C,KAAK64D,MAAQ,GAAIz2B,GAAOuW,OACxB34C,KAAK84D,OAAS,GAAI12B,GAAOuW,OAEzB34C,KAAKoG,MAAQ,GAAIg8B,GAAOn+B,MAAM,EAAG,GACjCjE,KAAK+2D,MAAQ,GAAI30B,GAAOn+B,MACxBjE,KAAK2H,SAAW,GAAIy6B,GAAOn+B,MAC3BjE,KAAKm5D,aAAe,GAAI/2B,GAAOn+B,MAE/BjE,KAAKg3D,OAAS,GAAI50B,GAAO4E,OAAO,EAAG,EAAG,IAEtChnC,KAAK+wD,cAAgB/wD,KAAKgxD,aAC1BhxD,KAAKk3D,gBAAkB,EAEvBl3D,KAAKs2D,UAAYhjD,SAASC,cAAc,UACxCvT,KAAKs2D,UAAUnvD,MAAQ,EACvBnH,KAAKs2D,UAAUlvD,OAAS,EACxBpH,KAAKu2D,WAAav2D,KAAKs2D,UAAU9iD,WAAW,MAE5CxT,KAAK+Z,MAAM3K,QACXpP,KAAKs4D,SAASlpD,QACdpP,KAAKu4D,MAAMnpD,QACXpP,KAAKw4D,UAAUppD,QACfpP,KAAKgxD,aAAa/X,QAAS,CAE3B,IAAI4E,GAAQ79C,IACZA,MAAKg6D,mBAAqB,SAAU1pC,GAChCutB,EAAMoc,kBAAkB3pC,IAG5BtwB,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,QAAS5c,KAAKg6D,oBAAoB,IASxE9tD,QAAS,WAELlM,KAAK+Z,MAAM/K,OACXhP,KAAKs4D,SAAStpD,OACdhP,KAAKu4D,MAAMvpD,OACXhP,KAAKw4D,UAAUxpD,OACfhP,KAAKy4D,QAAQzpD,OAEbhP,KAAKw2D,iBAELx2D,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,QAASld,KAAKg6D,qBAgBvDE,gBAAiB,SAAU7/C,EAAUvJ,GAEjC,MAAO9Q,MAAKw2D,cAAclyD,MAAO+V,SAAUA,EAAUvJ,QAASA,IAAa,GAU/EqpD,mBAAoB,SAAUxtD,GAEtB3M,KAAKw2D,cAAc7pD,IAEnB3M,KAAKw2D,cAAc3pD,OAAOF,EAAO,IAazC+sD,WAAY,WAER,GAAI15D,KAAKq4D,SAASh0D,QAAU+9B,EAAO4yB,MAAMwE,aAGrC,MADAj2D,SAAQo0C,KAAK,iCAAmCvV,EAAO4yB,MAAMwE,aAAe,oBACrE,IAGX,IAAItzD,GAAKlG,KAAKq4D,SAASh0D,OAAS,EAC5Bg4C,EAAU,GAAIja,GAAOq3B,QAAQz5D,KAAKmyC,KAAMjsC,EAK5C,OAHAlG,MAAKq4D,SAAS/zD,KAAK+3C,GACnBr8C,KAAK,UAAYkG,GAAMm2C,EAEhBA,GAUX7iC,OAAQ,WAIJ,GAFAxZ,KAAKs4D,SAAS9+C,SAEVxZ,KAAK22D,SAAW,GAAK32D,KAAKk5D,aAAel5D,KAAK22D,SAG9C,WADA32D,MAAKk5D,cAITl5D,MAAK+2D,MAAMxyD,EAAIvE,KAAK2H,SAASpD,EAAIvE,KAAKm5D,aAAa50D,EACnDvE,KAAK+2D,MAAMvyD,EAAIxE,KAAK2H,SAASnD,EAAIxE,KAAKm5D,aAAa30D,EAEnDxE,KAAKm5D,aAAa7xB,SAAStnC,KAAK2H,UAChC3H,KAAKgxD,aAAax3C,SAEdxZ,KAAKy4D,QAAQxf,QAAUj5C,KAAKy4D,QAAQj/C,QAExC,KAAK,GAAIrV,GAAI,EAAGA,EAAInE,KAAKq4D,SAASh0D,OAAQF,IAEtCnE,KAAKq4D,SAASl0D,GAAGqV,QAGrBxZ,MAAKk5D,aAAe,GAexB7wC,MAAO,SAAU+xC,GAEb,GAAKp6D,KAAKmyC,KAAKyE,WAAY52C,KAAK04D,YAAhC,CAKoB,mBAAT0B,KAAwBA,GAAO,GAE1Cp6D,KAAKs4D,SAASjwC,MAAM+xC,GACpBp6D,KAAKgxD,aAAa3oC,QAClBroB,KAAKy4D,QAAQpwC,OAEb,KAAK,GAAIlkB,GAAI,EAAGA,EAAInE,KAAKq4D,SAASh0D,OAAQF,IAEtCnE,KAAKq4D,SAASl0D,GAAGkkB,OAGrBroB,MAAKk3D,gBAAkB,EAEe,SAAlCl3D,KAAKmyC,KAAK9+B,OAAOD,MAAM+sC,SAEvBngD,KAAKmyC,KAAK9+B,OAAOD,MAAM+sC,OAAS,WAGhCia,IAEAp6D,KAAK24D,OAAOhe,UACZ36C,KAAK44D,KAAKje,UACV36C,KAAK64D,MAAMle,UACX36C,KAAK84D,OAAOne,UACZ36C,KAAK24D,OAAS,GAAIv2B,GAAOuW,OACzB34C,KAAK44D,KAAO,GAAIx2B,GAAOuW,OACvB34C,KAAK64D,MAAQ,GAAIz2B,GAAOuW,OACxB34C,KAAK84D,OAAS,GAAI12B,GAAOuW,OACzB34C,KAAKw2D,kBAGTx2D,KAAKk5D,aAAe,IAWxBmB,WAAY,SAAU91D,EAAGC,GAErBxE,KAAKm5D,aAAa9xB,MAAM9iC,EAAGC,GAC3BxE,KAAK+2D,MAAM1vB,MAAM,EAAG,IAaxBizB,aAAc,SAAUhqC,GAEpB,GAAItwB,KAAKi3D,aAAe,GAAKj3D,KAAKu6D,oBAAoBv6D,KAAKi3D,cAAgBj3D,KAAKi3D,YAE5E,MAAO,KAGX,KAAKj3D,KAAK23D,SAAS1e,OAEf,MAAOj5C,MAAK23D,SAASvoD,MAAMkhB,EAE/B,KAAKtwB,KAAK43D,SAAS3e,OAEf,MAAOj5C,MAAK43D,SAASxoD,MAAMkhB,EAG/B,KAAK,GAAInsB,GAAI,EAAGA,EAAInE,KAAKq4D,SAASh0D,OAAQF,IAC1C,CACI,GAAIk4C,GAAUr8C,KAAKq4D,SAASl0D,EAC5B,KAAKk4C,EAAQpD,OAET,MAAOoD,GAAQjtC,MAAMkhB,GAI7B,MAAO,OAaXkqC,cAAe,SAAUlqC,GAErB,GAAItwB,KAAK23D,SAAS1e,QAAUj5C,KAAK23D,SAAS8C,aAAenqC,EAAMmqC,WAE3D,MAAOz6D,MAAK23D,SAAS+C,KAAKpqC,EAE9B,IAAItwB,KAAK43D,SAAS3e,QAAUj5C,KAAK43D,SAAS6C,aAAenqC,EAAMmqC,WAE3D,MAAOz6D,MAAK43D,SAAS8C,KAAKpqC,EAG9B,KAAK,GAAInsB,GAAI,EAAGA,EAAInE,KAAKq4D,SAASh0D,OAAQF,IAC1C,CACI,GAAIk4C,GAAUr8C,KAAKq4D,SAASl0D,EAC5B,IAAIk4C,EAAQpD,QAAUoD,EAAQoe,aAAenqC,EAAMmqC,WAE/C,MAAOpe,GAAQqe,KAAKpqC,GAI5B,MAAO,OAYXqqC,YAAa,SAAUrqC,GAEnB,GAAItwB,KAAK23D,SAAS1e,QAAUj5C,KAAK23D,SAAS8C,aAAenqC,EAAMmqC,WAE3D,MAAOz6D,MAAK23D,SAAS3oD,KAAKshB,EAE9B,IAAItwB,KAAK43D,SAAS3e,QAAUj5C,KAAK43D,SAAS6C,aAAenqC,EAAMmqC,WAE3D,MAAOz6D,MAAK43D,SAAS5oD,KAAKshB,EAG9B,KAAK,GAAInsB,GAAI,EAAGA,EAAInE,KAAKq4D,SAASh0D,OAAQF,IAC1C,CACI,GAAIk4C,GAAUr8C,KAAKq4D,SAASl0D,EAC5B,IAAIk4C,EAAQpD,QAAUoD,EAAQoe,aAAenqC,EAAMmqC,WAE/C,MAAOpe,GAAQrtC,KAAKshB,GAI5B,MAAO,OAYXiqC,oBAAqB,SAAUK,GAEN,mBAAVA,KAAyBA,EAAQ56D,KAAKq4D,SAASh0D,OAG1D,KAAK,GADD8sB,GAAQypC,EACHz2D,EAAI,EAAGA,EAAInE,KAAKq4D,SAASh0D,QAAU8sB,EAAQ,EAAGhtB,IACvD,CACI,GAAIk4C,GAAUr8C,KAAKq4D,SAASl0D,EACxBk4C,GAAQpD,QAER9nB,IAOR,MAFAnxB,MAAKk3D,gBAAmB0D,EAAQzpC,EAExBypC,EAAQzpC,GAWpB0pC,WAAY,SAAUC,GAEM,mBAAbA,KAA4BA,GAAW,EAElD,KAAK,GAAI32D,GAAI,EAAGA,EAAInE,KAAKq4D,SAASh0D,OAAQF,IAC1C,CACI,GAAIk4C,GAAUr8C,KAAKq4D,SAASl0D,EAC5B,IAAIk4C,EAAQpD,SAAW6hB,EAEnB,MAAOze,GAIf,MAAO,OAeX0e,yBAA0B,SAAUN,GAEhC,IAAK,GAAIt2D,GAAI,EAAGA,EAAInE,KAAKq4D,SAASh0D,OAAQF,IAC1C,CACI,GAAIk4C,GAAUr8C,KAAKq4D,SAASl0D,EAC5B,IAAIk4C,EAAQoe,aAAeA,EAEvB,MAAOpe,GAIf,MAAO,OAcX2e,iBAAkB,SAAUC,GAExB,IAAK,GAAI92D,GAAI,EAAGA,EAAInE,KAAKq4D,SAASh0D,OAAQF,IAC1C,CACI,GAAIk4C,GAAUr8C,KAAKq4D,SAASl0D,EAE5B,IAAIk4C,EAAQ4e,YAAcA,EAEtB,MAAO5e,GAIf,MAAO,OAYX6e,iBAAkB,SAAUjrC,EAAeosB,EAAS1U,GAE1B,mBAAXA,KAA0BA,EAAS,GAAIvF,GAAOn+B,MAEzD,IAAImG,GAAK6lB,EAAcvnB,eACnBxC,EAAK,GAAKkE,EAAG/E,EAAI+E,EAAG5E,EAAI4E,EAAG7E,GAAK6E,EAAG9E,EAEvC,OAAOqiC,GAAON,MACVj9B,EAAG5E,EAAIU,EAAKm2C,EAAQ93C,GAAK6F,EAAG7E,EAAIW,EAAKm2C,EAAQ73C,GAAK4F,EAAG1E,GAAK0E,EAAG7E,EAAI6E,EAAG3E,GAAK2E,EAAG5E,GAAKU,EACjFkE,EAAG/E,EAAIa,EAAKm2C,EAAQ73C,GAAK4F,EAAG9E,EAAIY,EAAKm2C,EAAQ93C,IAAM6F,EAAG1E,GAAK0E,EAAG/E,EAAI+E,EAAG3E,GAAK2E,EAAG9E,GAAKY,IAa1Fi1D,QAAS,SAAUlrC,EAAeosB,EAAS+e,GAEvC,IAAKnrC,EAAcorC,aAEf,OAAO,CAOX,IAJAr7D,KAAKk7D,iBAAiBjrC,EAAeosB,EAASr8C,KAAKi5D,aAEnDmC,EAAW9zB,SAAStnC,KAAKi5D,aAErBhpC,EAAc/nB,SAAW+nB,EAAc/nB,QAAQvD,SAE/C,MAAQsrB,GAAc/nB,QAAQvD,SAAS3E,KAAKi5D,YAAY10D,EAAGvE,KAAKi5D,YAAYz0D,EAE3E,IAAIyrB,YAAyBhwB,MAAKyL,OACvC,CACI,GAAIvE,GAAQ8oB,EAAcpkB,QAAQkE,MAAM5I,MACpCC,EAAS6oB,EAAcpkB,QAAQkE,MAAM3I,OACrCC,GAAMF,EAAQ8oB,EAAchkB,OAAO1H,CAEvC,IAAIvE,KAAKi5D,YAAY10D,GAAK8C,GAAMrH,KAAKi5D,YAAY10D,EAAI8C,EAAKF,EAC1D,CACI,GAAIG,IAAMF,EAAS6oB,EAAchkB,OAAOzH,CAExC;GAAIxE,KAAKi5D,YAAYz0D,GAAK8C,GAAMtH,KAAKi5D,YAAYz0D,EAAI8C,EAAKF,EAEtD,OAAO,OAId,IAAI6oB,YAAyBmS,GAAOk5B,WACzC,CACI,GAAIn0D,GAAQ8oB,EAAc9oB,MACtBC,EAAS6oB,EAAc7oB,OACvBC,GAAMF,EAAQ8oB,EAAchkB,OAAO1H,CAEvC,IAAIvE,KAAKi5D,YAAY10D,GAAK8C,GAAMrH,KAAKi5D,YAAY10D,EAAI8C,EAAKF,EAC1D,CACI,GAAIG,IAAMF,EAAS6oB,EAAchkB,OAAOzH,CAExC,IAAIxE,KAAKi5D,YAAYz0D,GAAK8C,GAAMtH,KAAKi5D,YAAYz0D,EAAI8C,EAAKF,EAEtD,OAAO,OAId,IAAI6oB,YAAyBmS,GAAO7Z,SAErC,IAAK,GAAIpkB,GAAI,EAAGA,EAAI8rB,EAAc7H,aAAa/jB,OAAQF,IACvD,CACI,GAAIyS,GAAOqZ,EAAc7H,aAAajkB,EAEtC,IAAKyS,EAAK9C,MAMN8C,EAAK6R,OAAS7R,EAAK6R,MAAM9jB,SAAS3E,KAAKi5D,YAAY10D,EAAGvE,KAAKi5D,YAAYz0D,GAEvE,OAAO,EAOnB,IAAK,GAAIL,GAAI,EAAGm3B,EAAMrL,EAAc7jB,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAE1D,GAAInE,KAAKm7D,QAAQlrC,EAAc7jB,SAASjI,GAAIk4C,EAAS+e,GAEjD,OAAO,CAIf,QAAO,GASXnB,kBAAmB,WAIfj6D,KAAK+wD,cAAcwK,4BAM3Bn5B,EAAO4yB,MAAMnxD,UAAUsB,YAAci9B,EAAO4yB,MAQ5C7rD,OAAOC,eAAeg5B,EAAO4yB,MAAMnxD,UAAW,KAE1CwF,IAAK,WACD,MAAOrJ,MAAKo5D,IAGhB9vD,IAAK,SAAUC,GACXvJ,KAAKo5D,GAAKl3D,KAAKmoC,MAAM9gC,MAW7BJ,OAAOC,eAAeg5B,EAAO4yB,MAAMnxD,UAAW,KAE1CwF,IAAK,WACD,MAAOrJ,MAAKq5D,IAGhB/vD,IAAK,SAAUC,GACXvJ,KAAKq5D,GAAKn3D,KAAKmoC,MAAM9gC,MAW7BJ,OAAOC,eAAeg5B,EAAO4yB,MAAMnxD,UAAW,cAE1CwF,IAAK,WACD,MAAQrJ,MAAK22D,SAAW,GAAK32D,KAAKk5D,aAAel5D,KAAK22D,YAW9DxtD,OAAOC,eAAeg5B,EAAO4yB,MAAMnxD,UAAW,yBAE1CwF,IAAK,WACD,MAAOrJ,MAAKq4D,SAASh0D,OAASrE,KAAKu6D,yBAW3CpxD,OAAOC,eAAeg5B,EAAO4yB,MAAMnxD,UAAW,uBAE1CwF,IAAK,WACD,MAAOrJ,MAAKu6D,yBAWpBpxD,OAAOC,eAAeg5B,EAAO4yB,MAAMnxD,UAAW,UAE1CwF,IAAK,WACD,MAAOrJ,MAAKmyC,KAAKyB,OAAOnxC,KAAK8B,EAAIvE,KAAKuE,KAW9C4E,OAAOC,eAAeg5B,EAAO4yB,MAAMnxD,UAAW,UAE1CwF,IAAK,WACD,MAAOrJ,MAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAIxE,KAAKwE,KAa9C2E,OAAOC,eAAeg5B,EAAO4yB,MAAMnxD,UAAW,YAE1CwF,IAAK,WACD,OAAQrJ,KAAK42D,SAEjBttD,IAAK,SAAUC,GACXvJ,KAAK42D,SAAWrtD,KAmBxB64B,EAAOo5B,IAAM,SAAUrpB,EAAMspB,GAKzBz7D,KAAKmyC,KAAOA,EAOZnyC,KAAK07D,UAAW,EAMhB17D,KAAKswB,MAAQ,KAMbtwB,KAAK27D,QAAS,EAMd37D,KAAK47D,MAAO,EAMZ57D,KAAK67D,QAAS,EAMd77D,KAAK87D,SAAU,EAMf97D,KAAK+7D,UAAW,EAKhB/7D,KAAKg8D,SAAW,EAQhBh8D,KAAKi8D,SAAW,EAMhBj8D,KAAKk8D,OAAS,MAMdl8D,KAAKm8D,QAAU,EAKfn8D,KAAKo8D,QAAUX,EAKfz7D,KAAK24D,OAAS,GAAIv2B,GAAOuW,OAKzB34C,KAAKq8D,eAAiB,KAKtBr8D,KAAKs8D,cAAgB,KAKrBt8D,KAAK44D,KAAO,GAAIx2B,GAAOuW,QAI3BvW,EAAOo5B,IAAI33D,WAEP2V,OAAQ,WAECxZ,KAAK07D,UAEN17D,KAAK27D,SAEL37D,KAAKi8D,SAAWj8D,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKg8D,SAC3Ch8D,KAAKm8D,UAEDn8D,KAAKq8D,gBAELr8D,KAAKq8D,eAAet4D,KAAK/D,KAAKs8D,cAAet8D,QAYzDu8D,eAAgB,SAAUjsC,GAEjBtwB,KAAK07D,WAEV17D,KAAKswB,MAAQA,EAETtwB,KAAK27D,SAKT37D,KAAK67D,OAASvrC,EAAMurC,OACpB77D,KAAK87D,QAAUxrC,EAAMwrC,QACrB97D,KAAK+7D,SAAWzrC,EAAMyrC,SAEtB/7D,KAAK27D,QAAS,EACd37D,KAAK47D,MAAO,EACZ57D,KAAKg8D,SAAWh8D,KAAKmyC,KAAK+B,KAAKA,KAC/Bl0C,KAAKi8D,SAAW,EAChBj8D,KAAKm8D,QAAU,EAEfn8D,KAAK24D,OAAO7f,SAAS94C,SAUzBw8D,aAAc,SAAUlsC,GAEftwB,KAAK07D,WAEV17D,KAAKswB,MAAQA,EAETtwB,KAAK47D,OAKT57D,KAAK27D,QAAS,EACd37D,KAAK47D,MAAO,EACZ57D,KAAKk8D,OAASl8D,KAAKmyC,KAAK+B,KAAKA,KAC7Bl0C,KAAKi8D,SAAWj8D,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKg8D,SAE3Ch8D,KAAK44D,KAAK9f,SAAS94C,SAavBqoB,MAAO,SAAU+xC,GAEO,mBAATA,KAAwBA,GAAO,GAE1Cp6D,KAAK27D,QAAS,EACd37D,KAAK47D,MAAO,EACZ57D,KAAKk8D,OAASl8D,KAAKmyC,KAAK+B,KAAKA,KAC7Bl0C,KAAKi8D,SAAW,EAChBj8D,KAAK07D,UAAW,EAEZtB,IAEAp6D,KAAK24D,OAAOlhB,YACZz3C,KAAK44D,KAAKnhB,YACVz3C,KAAKq8D,eAAiB,KACtBr8D,KAAKs8D,cAAgB,OAW7BG,YAAa,SAAUR,GAInB,MAFwB,mBAAbA,KAA4BA,EAAW,IAE1Cj8D,KAAK27D,QAAU37D,KAAKi8D,SAAWA,GAU3CS,aAAc,SAAUT,GAIpB,MAFwB,mBAAbA,KAA4BA,EAAW,KAEzCj8D,KAAK27D,QAAY37D,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKk8D,OAAUD,IAavE9yD,OAAOC,eAAeg5B,EAAOo5B,IAAI33D,UAAW,WAExCwF,IAAK,WACD,MAAOrJ,MAAK07D,UAEhBpyD,IAAK,SAAUC,GACXA,IAAUA,EAENA,IAAUvJ,KAAK07D,WAEVnyD,GAEDvJ,KAAKqoB,OAAM,GAEfroB,KAAK07D,SAAWnyD,MAM5B64B,EAAOo5B,IAAI33D,UAAUsB,YAAci9B,EAAOo5B,IAkB1Cp5B,EAAOw3B,SAAW,SAAUznB,GAKxBnyC,KAAKmyC,KAAOA,EAOZnyC,KAAK42D,SAAU,EAKf52D,KAAKswB,MAAQ,KAKbtwB,KAAK28D,WAAa,KAKlB38D,KAAK82C,gBAAkB92C,KAKvBA,KAAK48D,eAAiB,KAKtB58D,KAAK68D,gBAAkB,KAKvB78D,KAAK88D,aAAe,KAMpB98D,KAAK+8D,SAML/8D,KAAKg9D,YAOLh9D,KAAKi9D,WAAa,KAOlBj9D,KAAKk9D,YAAc,KAOnBl9D,KAAKm9D,SAAW,KAMhBn9D,KAAKk9C,GAAK,EAMVl9C,KAAKo9D,GAAK,GAIdh7B,EAAOw3B,SAAS/1D,WAWZw5D,aAAc,SAAUvsD,EAAS6nD,EAAQC,EAAM0E,GAE3Ct9D,KAAK82C,gBAAkBhmC,EAED,mBAAX6nD,KAEP34D,KAAK48D,eAAiBjE,GAGN,mBAATC,KAEP54D,KAAK88D,aAAelE,GAGD,mBAAZ0E,KAEPt9D,KAAK68D,gBAAkBS,IAa/BC,OAAQ,SAAU9B,GASd,MAPKz7D,MAAK+8D,MAAMtB,KAEZz7D,KAAK+8D,MAAMtB,GAAW,GAAIr5B,GAAOo5B,IAAIx7D,KAAKmyC,KAAMspB,GAEhDz7D,KAAKw9D,cAAc/B,IAGhBz7D,KAAK+8D,MAAMtB,IAUtBgC,UAAW,SAAUhC,GAEbz7D,KAAK+8D,MAAMtB,KAEXz7D,KAAK+8D,MAAMtB,GAAW,KAEtBz7D,KAAK09D,iBAAiBjC,KAW9BkC,iBAAkB,WAEd,OACIC,GAAI59D,KAAKu9D,OAAOn7B,EAAOw3B,SAAS/2B,IAChCg7B,KAAM79D,KAAKu9D,OAAOn7B,EAAOw3B,SAAS92B,MAClCqD,KAAMnmC,KAAKu9D,OAAOn7B,EAAOw3B,SAASj3B,MAClCuD,MAAOlmC,KAAKu9D,OAAOn7B,EAAOw3B,SAASh3B,SAW3CxzB,MAAO,WAEH,IAAIpP,KAAKmyC,KAAKyM,OAAOsN,UAKG,OAApBlsD,KAAKi9D,WAAT,CAMA,GAAIpf,GAAQ79C,IAEZA,MAAKi9D,WAAa,SAAU3sC,GACxB,MAAOutB,GAAM0e,eAAejsC,IAGhCtwB,KAAKm9D,SAAW,SAAU7sC,GACtB,MAAOutB,GAAM2e,aAAalsC,IAG9BtwB,KAAKk9D,YAAc,SAAU5sC,GACzB,MAAOutB,GAAMigB,gBAAgBxtC,IAGjC5sB,OAAOkZ,iBAAiB,UAAW5c,KAAKi9D,YAAY,GACpDv5D,OAAOkZ,iBAAiB,QAAS5c,KAAKm9D,UAAU,GAChDz5D,OAAOkZ,iBAAiB,WAAY5c,KAAKk9D,aAAa,KAS1DluD,KAAM,WAEFtL,OAAOwZ,oBAAoB,UAAWld,KAAKi9D,YAC3Cv5D,OAAOwZ,oBAAoB,QAASld,KAAKm9D,UACzCz5D,OAAOwZ,oBAAoB,WAAYld,KAAKk9D,aAE5Cl9D,KAAKi9D,WAAa,KAClBj9D,KAAKm9D,SAAW,KAChBn9D,KAAKk9D,YAAc,MAUvBhxD,QAAS,WAELlM,KAAKgP,OAELhP,KAAK+9D,gBAEL/9D,KAAK+8D,MAAM14D,OAAS,EACpBrE,KAAKk9C,GAAK,GAadsgB,cAAe,SAAU/B,GAErB,GAAuB,gBAAZA,GAEP,IAAK,GAAI94C,KAAO84C,GAEZz7D,KAAKg9D,SAASvB,EAAQ94C,KAAQ,MAKlC3iB,MAAKg9D,SAASvB,IAAW,GAUjCiC,iBAAkB,SAAUjC,SAEjBz7D,MAAKg9D,SAASvB,IASzBsC,cAAe,WAEX/9D,KAAKg9D,aASTxjD,OAAQ,WAIJ,IAFAxZ,KAAKk9C,GAAKl9C,KAAK+8D,MAAM14D,OAEdrE,KAAKk9C,MAEJl9C,KAAK+8D,MAAM/8D,KAAKk9C,KAEhBl9C,KAAK+8D,MAAM/8D,KAAKk9C,IAAI1jC,UAahC+iD,eAAgB,SAAUjsC,GAEtBtwB,KAAKswB,MAAQA,EAERtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,UAMlC52D,KAAKg9D,SAAS1sC,EAAM8rC,UAEpB9rC,EAAMC,iBAGLvwB,KAAK+8D,MAAMzsC,EAAM8rC,WAElBp8D,KAAK+8D,MAAMzsC,EAAM8rC,SAAW,GAAIh6B,GAAOo5B,IAAIx7D,KAAKmyC,KAAM7hB,EAAM8rC,UAGhEp8D,KAAK+8D,MAAMzsC,EAAM8rC,SAASG,eAAejsC,GAEzCtwB,KAAKo9D,GAAK9sC,EAAM8rC,QAEZp8D,KAAK48D,gBAEL58D,KAAK48D,eAAe74D,KAAK/D,KAAK82C,gBAAiBxmB,KAYvDwtC,gBAAiB,SAAUxtC,GAEvBtwB,KAAK28D,WAAarsC,EAEbtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,SAKlC52D,KAAK68D,iBAEL78D,KAAK68D,gBAAgB94D,KAAK/D,KAAK82C,gBAAiBknB,OAAOC,aAAa3tC,EAAMrY,UAAWqY,IAY7FksC,aAAc,SAAUlsC,GAEpBtwB,KAAKswB,MAAQA,EAERtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,UAKlC52D,KAAKg9D,SAAS1sC,EAAM8rC,UAEpB9rC,EAAMC,iBAGLvwB,KAAK+8D,MAAMzsC,EAAM8rC,WAElBp8D,KAAK+8D,MAAMzsC,EAAM8rC,SAAW,GAAIh6B,GAAOo5B,IAAIx7D,KAAKmyC,KAAM7hB,EAAM8rC,UAGhEp8D,KAAK+8D,MAAMzsC,EAAM8rC,SAASI,aAAalsC,GAEnCtwB,KAAK88D,cAEL98D,KAAK88D,aAAa/4D,KAAK/D,KAAK82C,gBAAiBxmB,KAWrDjI,MAAO,SAAU+xC,GAEO,mBAATA,KAAwBA,GAAO,GAE1Cp6D,KAAKswB,MAAQ,IAIb,KAFA,GAAInsB,GAAInE,KAAK+8D,MAAM14D,OAEZF,KAECnE,KAAK+8D,MAAM54D,IAEXnE,KAAK+8D,MAAM54D,GAAGkkB,MAAM+xC,IAchCqC,YAAa,SAAUhB,EAASQ,GAI5B,MAFwB,mBAAbA,KAA4BA,EAAW,IAE9Cj8D,KAAK+8D,MAAMtB,GAEJz7D,KAAK+8D,MAAMtB,GAASgB,YAAYR,IAIhC,GAafS,aAAc,SAAUjB,EAASQ,GAI7B,MAFwB,mBAAbA,KAA4BA,EAAW,IAE9Cj8D,KAAK+8D,MAAMtB,GAEJz7D,KAAK+8D,MAAMtB,GAASiB,aAAaT,IAIjC,GAYfN,OAAQ,SAAUF,GAEd,MAAIz7D,MAAK+8D,MAAMtB,GAEJz7D,KAAK+8D,MAAMtB,GAASE,QAGxB,IAafxyD,OAAOC,eAAeg5B,EAAOw3B,SAAS/1D,UAAW,YAE7CwF,IAAK,WACD,OAAQrJ,KAAK42D,SAEjBttD,IAAK,SAAUC,GACXvJ,KAAK42D,SAAWrtD,KAWxBJ,OAAOC,eAAeg5B,EAAOw3B,SAAS/1D,UAAW,YAE7CwF,IAAK,WAED,MAA4B,MAAxBrJ,KAAKswB,MAAMrY,SAEJ,GAIA+lD,OAAOC,aAAaj+D,KAAK28D,WAAW1kD,aAavD9O,OAAOC,eAAeg5B,EAAOw3B,SAAS/1D,UAAW,WAE7CwF,IAAK,WAED,MAAOrJ,MAAK+8D,MAAM/8D,KAAKo9D,OAM/Bh7B,EAAOw3B,SAAS/1D,UAAUsB,YAAci9B,EAAOw3B,SAE/Cx3B,EAAOw3B,SAASsE,EAAI,IAAIhmD,WAAW,GACnCkqB,EAAOw3B,SAASuE,EAAI,IAAIjmD,WAAW,GACnCkqB,EAAOw3B,SAASwE,EAAI,IAAIlmD,WAAW,GACnCkqB,EAAOw3B,SAASyE,EAAI,IAAInmD,WAAW,GACnCkqB,EAAOw3B,SAAS0E,EAAI,IAAIpmD,WAAW,GACnCkqB,EAAOw3B,SAASv+C,EAAI,IAAInD,WAAW,GACnCkqB,EAAOw3B,SAAS2E,EAAI,IAAIrmD,WAAW,GACnCkqB,EAAOw3B,SAAS4E,EAAI,IAAItmD,WAAW,GACnCkqB,EAAOw3B,SAAS6E,EAAI,IAAIvmD,WAAW,GACnCkqB,EAAOw3B,SAAS8E,EAAI,IAAIxmD,WAAW,GACnCkqB,EAAOw3B,SAAS+E,EAAI,IAAIzmD,WAAW,GACnCkqB,EAAOw3B,SAASgF,EAAI,IAAI1mD,WAAW,GACnCkqB,EAAOw3B,SAASiF,EAAI,IAAI3mD,WAAW,GACnCkqB,EAAOw3B,SAASkF,EAAI,IAAI5mD,WAAW,GACnCkqB,EAAOw3B,SAASmF,EAAI,IAAI7mD,WAAW,GACnCkqB,EAAOw3B,SAASoF,EAAI,IAAI9mD,WAAW,GACnCkqB,EAAOw3B,SAASqF,EAAI,IAAI/mD,WAAW,GACnCkqB,EAAOw3B,SAASsF,EAAI,IAAIhnD,WAAW,GACnCkqB,EAAOw3B,SAASuF,EAAI,IAAIjnD,WAAW,GACnCkqB,EAAOw3B,SAASwF,EAAI,IAAIlnD,WAAW,GACnCkqB,EAAOw3B,SAASyF,EAAI,IAAInnD,WAAW,GACnCkqB,EAAOw3B,SAAS0F,EAAI,IAAIpnD,WAAW,GACnCkqB,EAAOw3B,SAAS2F,EAAI,IAAIrnD,WAAW,GACnCkqB,EAAOw3B,SAAS4F,EAAI,IAAItnD,WAAW,GACnCkqB,EAAOw3B,SAAS6F,EAAI,IAAIvnD,WAAW,GACnCkqB,EAAOw3B,SAAS8F,EAAI,IAAIxnD,WAAW,GACnCkqB,EAAOw3B,SAAS+F,KAAO,IAAIznD,WAAW,GACtCkqB,EAAOw3B,SAASnpC,IAAM,IAAIvY,WAAW,GACrCkqB,EAAOw3B,SAASgG,IAAM,IAAI1nD,WAAW,GACrCkqB,EAAOw3B,SAASiG,MAAQ,IAAI3nD,WAAW,GACvCkqB,EAAOw3B,SAASkG,KAAO,IAAI5nD,WAAW,GACtCkqB,EAAOw3B,SAASmG,KAAO,IAAI7nD,WAAW,GACtCkqB,EAAOw3B,SAASoG,IAAM,IAAI9nD,WAAW,GACrCkqB,EAAOw3B,SAASqG,MAAQ,IAAI/nD,WAAW,GACvCkqB,EAAOw3B,SAASsG,MAAQ,IAAIhoD,WAAW,GACvCkqB,EAAOw3B,SAASuG,KAAO,IAAIjoD,WAAW,GACtCkqB,EAAOw3B,SAASwG,SAAW,GAC3Bh+B,EAAOw3B,SAASyG,SAAW,GAC3Bj+B,EAAOw3B,SAAS0G,SAAW,GAC3Bl+B,EAAOw3B,SAAS2G,SAAW,GAC3Bn+B,EAAOw3B,SAAS4G,SAAW,IAC3Bp+B,EAAOw3B,SAAS6G,SAAW,IAC3Br+B,EAAOw3B,SAAS8G,SAAW,IAC3Bt+B,EAAOw3B,SAAS+G,SAAW,IAC3Bv+B,EAAOw3B,SAASgH,SAAW,IAC3Bx+B,EAAOw3B,SAASiH,SAAW,IAC3Bz+B,EAAOw3B,SAASkH,gBAAkB,IAClC1+B,EAAOw3B,SAASmH,WAAa,IAC7B3+B,EAAOw3B,SAASoH,aAAe,IAC/B5+B,EAAOw3B,SAASqH,gBAAkB,IAClC7+B,EAAOw3B,SAASsH,eAAiB,IACjC9+B,EAAOw3B,SAASuH,cAAgB,IAChC/+B,EAAOw3B,SAASwH,GAAK,IACrBh/B,EAAOw3B,SAASyH,GAAK,IACrBj/B,EAAOw3B,SAAS0H,GAAK,IACrBl/B,EAAOw3B,SAAS2H,GAAK,IACrBn/B,EAAOw3B,SAAS4H,GAAK,IACrBp/B,EAAOw3B,SAAS6H,GAAK,IACrBr/B,EAAOw3B,SAAS8H,GAAK,IACrBt/B,EAAOw3B,SAAS+H,GAAK,IACrBv/B,EAAOw3B,SAASgI,GAAK,IACrBx/B,EAAOw3B,SAASiI,IAAM,IACtBz/B,EAAOw3B,SAASkI,IAAM,IACtB1/B,EAAOw3B,SAASmI,IAAM,IACtB3/B,EAAOw3B,SAASoI,IAAM,IACtB5/B,EAAOw3B,SAASqI,IAAM,IACtB7/B,EAAOw3B,SAASsI,IAAM,IACtB9/B,EAAOw3B,SAASuI,MAAQ,IACxB//B,EAAOw3B,SAASwI,OAAS,IACzBhgC,EAAOw3B,SAASyI,WAAa,IAC7BjgC,EAAOw3B,SAAS0I,cAAgB,IAChClgC,EAAOw3B,SAAS2I,MAAQ,IACxBngC,EAAOw3B,SAAS4I,aAAe,IAC/BpgC,EAAOw3B,SAAS6I,eAAiB,IACjCrgC,EAAOw3B,SAAS8I,eAAiB,IACjCtgC,EAAOw3B,SAAS+I,OAAS,IACzBvgC,EAAOw3B,SAASgJ,UAAY,EAC5BxgC,EAAOw3B,SAASiJ,IAAM,EACtBzgC,EAAOw3B,SAASkJ,MAAQ,GACxB1gC,EAAOw3B,SAASmJ,MAAQ,GACxB3gC,EAAOw3B,SAASoJ,MAAQ,GACxB5gC,EAAOw3B,SAASqJ,QAAU,GAC1B7gC,EAAOw3B,SAASsJ,IAAM,GACtB9gC,EAAOw3B,SAASuJ,UAAY,GAC5B/gC,EAAOw3B,SAASwJ,IAAM,GACtBhhC,EAAOw3B,SAASyJ,SAAW,GAC3BjhC,EAAOw3B,SAAS0J,QAAU,GAC1BlhC,EAAOw3B,SAAS2J,UAAY,GAC5BnhC,EAAOw3B,SAAS4J,IAAM,GACtBphC,EAAOw3B,SAAS6J,KAAO,GACvBrhC,EAAOw3B,SAASj3B,KAAO,GACvBP,EAAOw3B,SAAS/2B,GAAK,GACrBT,EAAOw3B,SAASh3B,MAAQ,GACxBR,EAAOw3B,SAAS92B,KAAO,GACvBV,EAAOw3B,SAAS8J,OAAS,GACzBthC,EAAOw3B,SAAS+J,OAAS,GACzBvhC,EAAOw3B,SAASgK,KAAO,GACvBxhC,EAAOw3B,SAASiK,SAAW,IAC3BzhC,EAAOw3B,SAASkK,KAAO,GACvB1hC,EAAOw3B,SAASmK,MAAQ,GAkBxB3hC,EAAOu3B,MAAQ,SAAUxnB,GAKrBnyC,KAAKmyC,KAAOA,EAKZnyC,KAAK82C,gBAAkB92C,KAAKmyC,KAK5BnyC,KAAKgkE,kBAAoB,KAKzBhkE,KAAKikE,kBAAoB,KAKzBjkE,KAAKkkE,gBAAkB,KAKvBlkE,KAAKmkE,iBAAmB,KAKxBnkE,KAAKokE,kBAAoB,KAKzBpkE,KAAKqkE,mBAAqB,KAK1BrkE,KAAKskE,SAAU,EAMftkE,KAAKukE,OAAS,GAKdvkE,KAAKwkE,WAAa,EAOlBxkE,KAAK42D,SAAU,EAMf52D,KAAKykE,QAAS,EAMdzkE,KAAK0kE,eAAgB,EAMrB1kE,KAAK2kE,YAAc,GAAIviC,GAAOuW,OAQ9B34C,KAAKswB,MAAQ,KAMbtwB,KAAK4kE,aAAe,KAMpB5kE,KAAK6kE,aAAe,KAMpB7kE,KAAK8kE,WAAa,KAMlB9kE,KAAK+kE,YAAc,KAMnB/kE,KAAKglE,aAAe,KAMpBhlE,KAAKilE,cAAgB,KAOrBjlE,KAAKklE,YAAc,MAQvB9iC,EAAOu3B,MAAMwL,UAAY,GAMzB/iC,EAAOu3B,MAAMyL,YAAc,EAM3BhjC,EAAOu3B,MAAM0L,cAAgB,EAM7BjjC,EAAOu3B,MAAM2L,aAAe,EAM5BljC,EAAOu3B,MAAM4L,SAAW,EAMxBnjC,EAAOu3B,MAAM6L,WAAa,GAE1BpjC,EAAOu3B,MAAM91D,WAMTuL,MAAO,WAEH,KAAIpP,KAAKmyC,KAAKyM,OAAO0N,SAAWtsD,KAAKmyC,KAAKyM,OAAO2N,UAAW,IAMlC,OAAtBvsD,KAAK4kE,aAAT,CAMA,GAAI/mB,GAAQ79C,IAEZA,MAAK4kE,aAAe,SAAUt0C,GAC1B,MAAOutB,GAAM4nB,YAAYn1C,IAG7BtwB,KAAK6kE,aAAe,SAAUv0C,GAC1B,MAAOutB,GAAM6nB,YAAYp1C,IAG7BtwB,KAAK8kE,WAAa,SAAUx0C,GACxB,MAAOutB,GAAM8nB,UAAUr1C,IAG3BtwB,KAAK4lE,iBAAmB,SAAUt1C,GAC9B,MAAOutB,GAAMgoB,gBAAgBv1C,IAGjCtwB,KAAK+kE,YAAc,SAAUz0C,GACzB,MAAOutB,GAAMioB,WAAWx1C,IAG5BtwB,KAAKglE,aAAe,SAAU10C,GAC1B,MAAOutB,GAAMkoB,YAAYz1C,IAG7BtwB,KAAKilE,cAAgB,SAAU30C,GAC3B,MAAOutB,GAAMmoB,aAAa11C,IAG9BtwB,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,YAAa5c,KAAK4kE,cAAc,GAClE5kE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,YAAa5c,KAAK6kE,cAAc,GAClE7kE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,UAAW5c,KAAK8kE,YAAY,GAEzD9kE,KAAKmyC,KAAKyM,OAAOsN,WAElBxoD,OAAOkZ,iBAAiB,UAAW5c,KAAK4lE,kBAAkB,GAC1D5lE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,YAAa5c,KAAKglE,cAAc,GAClEhlE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,WAAY5c,KAAK+kE,aAAa,GAGpE,IAAIkB,GAAajmE,KAAKmyC,KAAKyM,OAAOqnB,UAC9BA,KAEAjmE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiBqpD,EAAYjmE,KAAKilE,eAAe,GAE/C,eAAfgB,EAEAjmE,KAAKklE,YAAc,GAAIpjC,GAAgB,GAAG,GAAI,GAE1B,mBAAfmkC,IAELjmE,KAAKklE,YAAc,GAAIpjC,GAAgB,EAAG,OAWtD2jC,YAAa,SAAUn1C,GAEnBtwB,KAAKswB,MAAQA,EAETtwB,KAAKskE,SAELh0C,EAAMC,iBAGVvwB,KAAKukE,OAASj0C,EAAMi0C,OAEhBvkE,KAAKgkE,mBAELhkE,KAAKgkE,kBAAkBjgE,KAAK/D,KAAK82C,gBAAiBxmB,GAGjDtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,UAKtCtmC,EAAkB,WAAI,EAEtBtwB,KAAKmyC,KAAK2B,MAAMkd,aAAa5hD,MAAMkhB,KASvCo1C,YAAa,SAAUp1C,GAEnBtwB,KAAKswB,MAAQA,EAETtwB,KAAKskE,SAELh0C,EAAMC,iBAGNvwB,KAAKikE,mBAELjkE,KAAKikE,kBAAkBlgE,KAAK/D,KAAK82C,gBAAiBxmB,GAGjDtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,UAKtCtmC,EAAkB,WAAI,EAEtBtwB,KAAKmyC,KAAK2B,MAAMkd,aAAa0J,KAAKpqC,KAStCq1C,UAAW,SAAUr1C,GAEjBtwB,KAAKswB,MAAQA,EAETtwB,KAAKskE,SAELh0C,EAAMC,iBAGVvwB,KAAKukE,OAASniC,EAAOu3B,MAAMwL,UAEvBnlE,KAAKkkE,iBAELlkE,KAAKkkE,gBAAgBngE,KAAK/D,KAAK82C,gBAAiBxmB,GAG/CtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,UAKtCtmC,EAAkB,WAAI,EAEtBtwB,KAAKmyC,KAAK2B,MAAMkd,aAAahiD,KAAKshB,KAUtCu1C,gBAAiB,SAAUv1C,GAElBtwB,KAAKmyC,KAAK2B,MAAMkd,aAAakV,aAE9BlmE,KAAKukE,OAASniC,EAAOu3B,MAAMwL,UAEvBnlE,KAAKkkE,iBAELlkE,KAAKkkE,gBAAgBngE,KAAK/D,KAAK82C,gBAAiBxmB,GAGpDA,EAAkB,WAAI,EAEtBtwB,KAAKmyC,KAAK2B,MAAMkd,aAAahiD,KAAKshB,KAW1Cw1C,WAAY,SAAUx1C,GAElBtwB,KAAKswB,MAAQA,EAETtwB,KAAKskE,SAELh0C,EAAMC,iBAGVvwB,KAAKmyC,KAAK2B,MAAMkd,aAAakV,YAAa,EAEtClmE,KAAKmkE,kBAELnkE,KAAKmkE,iBAAiBpgE,KAAK/D,KAAK82C,gBAAiBxmB,GAGhDtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,SAKlC52D,KAAK0kE,gBAELp0C,EAAkB,WAAI,EAEtBtwB,KAAKmyC,KAAK2B,MAAMkd,aAAahiD,KAAKshB,KAW1C01C,aAAc,SAAU11C,GAEhBtwB,KAAKklE,cACL50C,EAAQtwB,KAAKklE,YAAYiB,UAAU71C,IAGvCtwB,KAAKswB,MAAQA,EAETtwB,KAAKskE,SAELh0C,EAAMC,iBAIVvwB,KAAKwkE,WAAapiC,EAAOlgC,KAAKmnC,OAAO/Y,EAAM81C,OAAQ,GAAI,GAEnDpmE,KAAKqkE,oBAELrkE,KAAKqkE,mBAAmBtgE,KAAK/D,KAAK82C,gBAAiBxmB,IAW3Dy1C,YAAa,SAAUz1C,GAEnBtwB,KAAKswB,MAAQA,EAETtwB,KAAKskE,SAELh0C,EAAMC,iBAGVvwB,KAAKmyC,KAAK2B,MAAMkd,aAAakV,YAAa,EAEtClmE,KAAKokE,mBAELpkE,KAAKokE,kBAAkBrgE,KAAK/D,KAAK82C,gBAAiBxmB,IAGjDtwB,KAAKmyC,KAAK2B,MAAM8iB,UAAY52D,KAAK42D,SAa1CyP,mBAAoB,WAEhB,GAAIrmE,KAAKmyC,KAAKyM,OAAO+lB,YACrB,CACI,GAAI3S,GAAUhyD,KAAKmyC,KAAK9+B,MAExB2+C,GAAQqU,mBAAqBrU,EAAQqU,oBAAsBrU,EAAQsU,uBAAyBtU,EAAQuU,yBAEpGvU,EAAQqU,oBAER,IAAIxoB,GAAQ79C,IAEZA,MAAKwmE,mBAAqB,SAAUl2C,GAChC,MAAOutB,GAAM4oB,kBAAkBn2C,IAGnChd,SAASsJ,iBAAiB,oBAAqB5c,KAAKwmE,oBAAoB,GACxElzD,SAASsJ,iBAAiB,uBAAwB5c,KAAKwmE,oBAAoB,GAC3ElzD,SAASsJ,iBAAiB,0BAA2B5c,KAAKwmE,oBAAoB,KAWtFC,kBAAmB,SAAUn2C,GAEzB,GAAI0hC,GAAUhyD,KAAKmyC,KAAK9+B,MAEpBC,UAASozD,qBAAuB1U,GAAW1+C,SAASqzD,wBAA0B3U,GAAW1+C,SAASszD,2BAA6B5U,GAG/HhyD,KAAKykE,QAAS,EACdzkE,KAAK2kE,YAAY7rB,UAAS,EAAMxoB,KAKhCtwB,KAAKykE,QAAS,EACdzkE,KAAK2kE,YAAY7rB,UAAS,EAAOxoB,KASzCu2C,mBAAoB,WAEhBvzD,SAASwzD,gBAAkBxzD,SAASwzD,iBAAmBxzD,SAASyzD,oBAAsBzzD,SAAS0zD,sBAE/F1zD,SAASwzD,kBAETxzD,SAAS4J,oBAAoB,oBAAqBld,KAAKwmE,oBAAoB,GAC3ElzD,SAAS4J,oBAAoB,uBAAwBld,KAAKwmE,oBAAoB,GAC9ElzD,SAAS4J,oBAAoB,0BAA2Bld,KAAKwmE,oBAAoB,IAQrFx3D,KAAM,WAEFhP,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,YAAald,KAAK4kE,cAAc,GACrE5kE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,YAAald,KAAK6kE,cAAc,GACrE7kE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,UAAWld,KAAK8kE,YAAY,GACjE9kE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,YAAald,KAAKglE,cAAc,GACrEhlE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,WAAYld,KAAK+kE,aAAa,EAEnE,IAAIkB,GAAajmE,KAAKmyC,KAAKyM,OAAOqnB,UAC9BA,IAEAjmE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB+oD,EAAYjmE,KAAKilE,eAAe,GAGzEvhE,OAAOwZ,oBAAoB,UAAWld,KAAK4lE,kBAAkB,GAE7DtyD,SAAS4J,oBAAoB,oBAAqBld,KAAKwmE,oBAAoB,GAC3ElzD,SAAS4J,oBAAoB,uBAAwBld,KAAKwmE,oBAAoB,GAC9ElzD,SAAS4J,oBAAoB,0BAA2Bld,KAAKwmE,oBAAoB,KAMzFpkC,EAAOu3B,MAAM91D,UAAUsB,YAAci9B,EAAOu3B,MAS5CxwD,OAAOC,eAAeg5B,EAAOu3B,MAAM91D,UAAW,YAE1CwF,IAAK,WACD,OAAQrJ,KAAK42D,SAEjBttD,IAAK,SAAUC,GACXvJ,KAAK42D,SAAWrtD,KA6BxBu4B,EAAgBj+B,aAChBi+B,EAAgBj+B,UAAUsB,YAAc28B,EAExCA,EAAgBj+B,UAAUsiE,UAAY,SAAU71C,GAG5C,IAAKwR,EAAgBmlC,iBAAmB32C,EACxC,CACI,GAAI42C,GAAa,SAAU7pD,GACvB,MAAO,YACH,GAAIyC,GAAI9f,KAAKmiC,cAAc9kB,EAC3B,OAAoB,kBAANyC,GAAmBA,EAAIA,EAAEhQ,KAAK9P,KAAKmiC,gBAGzD,KAAK,GAAImC,KAAQhU,GACPgU,IAAQxC,GAAgBj+B,WAE1BsF,OAAOC,eAAe04B,EAAgBj+B,UAAWygC,GAC7Cj7B,IAAK69D,EAAW5iC,IAI5BxC,GAAgBmlC,iBAAkB,EAItC,MADAjnE,MAAKmiC,cAAgB7R,EACdtwB,MAIXmJ,OAAOg+D,iBAAiBrlC,EAAgBj+B,WACpCZ,MAAUsG,MAAO,SACjBy4B,WAAe34B,IAAK,WAAc,MAAOrJ,MAAKkiC,aAC9CkkC,QACI/8D,IAAK,WACD,MAAQrJ,MAAKiiC,cAAgBjiC,KAAKmiC,cAAcqiC,YAAcxkE,KAAKmiC,cAAcilC,SAAY,IAGrGC,QACIh+D,IAAK,WACD,MAAQrJ,MAAKiiC,aAAejiC,KAAKmiC,cAAcmlC,aAAgB,IAGvEC,QAAYh+D,MAAO,KAmBvB64B,EAAO03B,UAAY,SAAU3nB,GAKzBnyC,KAAKmyC,KAAOA,EAKZnyC,KAAK82C,gBAAkB92C,KAAKmyC,KAO5BnyC,KAAK42D,SAAU,EAMf52D,KAAKwnE,iBAAmB,KAMxBxnE,KAAKynE,iBAAmB,KAMxBznE,KAAK0nE,eAAiB,MAI1BtlC,EAAO03B,UAAUj2D,WAMbuL,MAAO,WAEH,GAA8B,OAA1BpP,KAAKwnE,iBAAT,CAMA,GAAI3pB,GAAQ79C,IAERA,MAAKmyC,KAAKyM,OAAO4Z,YAEjBx4D,KAAKwnE,iBAAmB,SAAUl3C,GAC9B,MAAOutB,GAAM8pB,cAAcr3C,IAG/BtwB,KAAKynE,iBAAmB,SAAUn3C,GAC9B,MAAOutB,GAAM+pB,cAAct3C,IAG/BtwB,KAAK0nE,eAAiB,SAAUp3C,GAC5B,MAAOutB,GAAMgqB,YAAYv3C,IAG7BtwB,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,gBAAiB5c,KAAKwnE,kBAAkB,GAC1ExnE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,gBAAiB5c,KAAKynE,kBAAkB,GAC1EznE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,cAAe5c,KAAK0nE,gBAAgB,GAGtE1nE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,cAAe5c,KAAKwnE,kBAAkB,GACxExnE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,cAAe5c,KAAKynE,kBAAkB,GACxEznE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,YAAa5c,KAAK0nE,gBAAgB,GAEpE1nE,KAAKmyC,KAAK9+B,OAAOD,MAAM,uBAAyB,OAChDpT,KAAKmyC,KAAK9+B,OAAOD,MAAM,oBAAsB,UAWrDu0D,cAAe,SAAUr3C,GAEhBtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,UAKtCtmC,EAAMC,iBACND,EAAMmqC,WAAanqC,EAAM2qC,UAEzBj7D,KAAKmyC,KAAK2B,MAAMwmB,aAAahqC,KASjCs3C,cAAe,SAAUt3C,GAEhBtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,UAKtCtmC,EAAMC,iBACND,EAAMmqC,WAAanqC,EAAM2qC,UAEzBj7D,KAAKmyC,KAAK2B,MAAM0mB,cAAclqC,KASlCu3C,YAAa,SAAUv3C,GAEdtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,UAKtCtmC,EAAMC,iBACND,EAAMmqC,WAAanqC,EAAM2qC,UAEzBj7D,KAAKmyC,KAAK2B,MAAM6mB,YAAYrqC,KAQhCthB,KAAM,WAEFhP,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,gBAAiBld,KAAKwnE,kBAC3DxnE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,gBAAiBld,KAAKynE,kBAC3DznE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,cAAeld,KAAK0nE,gBAEzD1nE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,cAAeld,KAAKwnE,kBACzDxnE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,cAAeld,KAAKynE,kBACzDznE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,YAAald,KAAK0nE,kBAM/DtlC,EAAO03B,UAAUj2D,UAAUsB,YAAci9B,EAAO03B,UAShD3wD,OAAOC,eAAeg5B,EAAO03B,UAAUj2D,UAAW,YAE9CwF,IAAK,WACD,OAAQrJ,KAAK42D,SAEjBttD,IAAK,SAAUC,GACXvJ,KAAK42D,SAAWrtD,KAmBxB64B,EAAOq3B,QAAU,SAAUtnB,EAAMjsC,GAK7BlG,KAAKmyC,KAAOA,EAKZnyC,KAAKkG,GAAKA,EAMVlG,KAAKiD,KAAOm/B,EAAO8B,QAMnBlkC,KAAKw4C,QAAS,EAMdx4C,KAAKy6D,WAAa,EAMlBz6D,KAAKi7D,UAAY,KAMjBj7D,KAAK+J,OAAS,KAMd/J,KAAKukE,OAAS,KAOdvkE,KAAK8nE,WAAY,EAMjB9nE,KAAK+nE,YAML/nE,KAAKgoE,UAAY,EAMjBhoE,KAAKioE,aAAc,EAKnBjoE,KAAKkmE,YAAa,EAKlBlmE,KAAKkoE,QAAU,GAKfloE,KAAKmoE,QAAU,GAKfnoE,KAAKooE,MAAQ,GAKbpoE,KAAKqoE,MAAQ,GAKbroE,KAAKsoE,QAAU,GAKftoE,KAAKuoE,QAAU,GAMfvoE,KAAKwoE,aAAe,EAMpBxoE,KAAKyoE,aAAe,EAMpBzoE,KAAK0oE,UAAY,EAMjB1oE,KAAK2oE,UAAY,EAMjB3oE,KAAKuE,EAAI,GAMTvE,KAAKwE,EAAI,GAMTxE,KAAK4oE,SAAU,EAMf5oE,KAAK27D,QAAS,EAMd37D,KAAK47D,MAAO,EAMZ57D,KAAKg8D,SAAW,EAMhBh8D,KAAKk8D,OAAS,EAMdl8D,KAAK6oE,gBAAkB,EAMvB7oE,KAAK8oE,aAAe,EAMpB9oE,KAAK+oE,iBAAmB18B,OAAOG,UAM/BxsC,KAAKgpE,aAAe,KAMpBhpE,KAAKi5C,QAAS,EAMdj5C,KAAKwJ,OAAQ,EAKbxJ,KAAK2H,SAAW,GAAIy6B,GAAOn+B,MAK3BjE,KAAKipE,aAAe,GAAI7mC,GAAOn+B,MAK/BjE,KAAKkpE,WAAa,GAAI9mC,GAAOn+B,MAO7BjE,KAAKg3D,OAAS,GAAI50B,GAAO4E,OAAO,EAAG,EAAG,IAE3B,IAAP9gC,IAEAlG,KAAK4oE,SAAU,GAQnB5oE,KAAKmpE,kBAAoB,KAQzBnpE,KAAKopE,wBAA0B,MAInChnC,EAAOq3B,QAAQ51D,WAOXuL,MAAO,SAAUkhB,GAyDb,MAvDIA,GAAiB,YAEjBtwB,KAAKi7D,UAAY3qC,EAAM2qC,WAG3Bj7D,KAAKy6D,WAAanqC,EAAMmqC,WACxBz6D,KAAK+J,OAASumB,EAAMvmB,OAEQ,mBAAjBumB,GAAMi0C,SAEbvkE,KAAKukE,OAASj0C,EAAMi0C,QAGxBvkE,KAAK+nE,YACL/nE,KAAKi5C,QAAS,EACdj5C,KAAKkmE,YAAa,EAClBlmE,KAAK27D,QAAS,EACd37D,KAAK47D,MAAO,EACZ57D,KAAKwJ,OAAQ,EACbxJ,KAAKmpE,kBAAoB,KACzBnpE,KAAKopE,wBAA0B,KAG/BppE,KAAK+oE,iBAAmB/oE,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKg8D,SACnDh8D,KAAKg8D,SAAWh8D,KAAKmyC,KAAK+B,KAAKA,KAC/Bl0C,KAAK8nE,WAAY,EAGjB9nE,KAAK06D,KAAKpqC,GAAO,GAGjBtwB,KAAKipE,aAAa5hC,MAAMrnC,KAAKuE,EAAGvE,KAAKwE,IAEjCxE,KAAKmyC,KAAK2B,MAAM+iB,qBAAuBz0B,EAAO4yB,MAAMsE,uBAAyBt5D,KAAKmyC,KAAK2B,MAAM+iB,qBAAuBz0B,EAAO4yB,MAAM8B,qBAAwB92D,KAAKmyC,KAAK2B,MAAM+iB,qBAAuBz0B,EAAO4yB,MAAMuE,uBAA6D,IAApCv5D,KAAKmyC,KAAK2B,MAAMojB,mBAEtPl3D,KAAKmyC,KAAK2B,MAAMvvC,EAAIvE,KAAKuE,EACzBvE,KAAKmyC,KAAK2B,MAAMtvC,EAAIxE,KAAKwE,EACzBxE,KAAKmyC,KAAK2B,MAAMnsC,SAAS0/B,MAAMrnC,KAAKuE,EAAGvE,KAAKwE,GAC5CxE,KAAKmyC,KAAK2B,MAAM6kB,OAAO7f,SAAS94C,KAAMswB,GACtCtwB,KAAKmyC,KAAK2B,MAAMumB,WAAWr6D,KAAKuE,EAAGvE,KAAKwE,IAG5CxE,KAAKioE,aAAc,EACnBjoE,KAAK8oE,eAEA9oE,KAAK4oE,SAEN5oE,KAAKmyC,KAAK2B,MAAMojB,kBAGM,OAAtBl3D,KAAKgpE,cAELhpE,KAAKgpE,aAAaK,gBAAgBrpE,MAG/BA,MAQXwZ,OAAQ,WAEAxZ,KAAKi5C,SAGDj5C,KAAKwJ,QAEDxJ,KAAKmyC,KAAK2B,MAAMklB,iBAAiBx7B,MAAQ,GAEzCx9B,KAAKspE,2BAA0B,GAGnCtpE,KAAKwJ,OAAQ,GAGbxJ,KAAK8nE,aAAc,GAAS9nE,KAAKi8D,UAAYj8D,KAAKmyC,KAAK2B,MAAMujB,YAEzDr3D,KAAKmyC,KAAK2B,MAAM+iB,oBAAsBz0B,EAAO4yB,MAAMsE,uBAAyBt5D,KAAKmyC,KAAK2B,MAAM+iB,oBAAsBz0B,EAAO4yB,MAAM8B,qBAAwB92D,KAAKmyC,KAAK2B,MAAM+iB,oBAAsBz0B,EAAO4yB,MAAMuE,uBAA6D,IAApCv5D,KAAKmyC,KAAK2B,MAAMojB,kBAEnPl3D,KAAKmyC,KAAK2B,MAAMglB,OAAOhgB,SAAS94C,MAGpCA,KAAK8nE,WAAY,GAIjB9nE,KAAKmyC,KAAK2B,MAAM0jB,sBAAwBx3D,KAAKmyC,KAAK+B,KAAKA,MAAQl0C,KAAKgoE,YAEpEhoE,KAAKgoE,UAAYhoE,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKmyC,KAAK2B,MAAM2jB,WAEvDz3D,KAAK+nE,SAASzjE,MACVC,EAAGvE,KAAK2H,SAASpD,EACjBC,EAAGxE,KAAK2H,SAASnD,IAGjBxE,KAAK+nE,SAAS1jE,OAASrE,KAAKmyC,KAAK2B,MAAM4jB,aAEvC13D,KAAK+nE,SAASwB,WAc9B7O,KAAM,SAAUpqC,EAAOk5C,GAEnB,IAAIxpE,KAAKmyC,KAAK2B,MAAM21B,WAApB,CAkDA,GA7CyB,mBAAdD,KAA6BA,GAAY,GAExB,mBAAjBl5C,GAAMi0C,SAEbvkE,KAAKukE,OAASj0C,EAAMi0C,QAGxBvkE,KAAKkoE,QAAU53C,EAAM43C,QACrBloE,KAAKmoE,QAAU73C,EAAM63C,QAErBnoE,KAAKooE,MAAQ93C,EAAM83C,MACnBpoE,KAAKqoE,MAAQ/3C,EAAM+3C,MAEnBroE,KAAKsoE,QAAUh4C,EAAMg4C,QACrBtoE,KAAKuoE,QAAUj4C,EAAMi4C,QAEjBvoE,KAAK4oE,SAAW5oE,KAAKmyC,KAAK2B,MAAM/5B,MAAM0qD,SAAW+E,IAEjDxpE,KAAKwoE,aAAel4C,EAAMo4C,WAAap4C,EAAMo5C,cAAgBp5C,EAAMq5C,iBAAmB,EACtF3pE,KAAKyoE,aAAen4C,EAAMq4C,WAAar4C,EAAMs5C,cAAgBt5C,EAAMu5C,iBAAmB,EAEtF7pE,KAAK0oE,WAAa1oE,KAAKwoE,aACvBxoE,KAAK2oE,WAAa3oE,KAAKyoE,cAG3BzoE,KAAKuE,GAAKvE,KAAKooE,MAAQpoE,KAAKmyC,KAAK/rC,MAAMsgB,OAAOniB,GAAKvE,KAAKmyC,KAAK2B,MAAM1tC,MAAM7B,EACzEvE,KAAKwE,GAAKxE,KAAKqoE,MAAQroE,KAAKmyC,KAAK/rC,MAAMsgB,OAAOliB,GAAKxE,KAAKmyC,KAAK2B,MAAM1tC,MAAM5B,EAEzExE,KAAK2H,SAAS0/B,MAAMrnC,KAAKuE,EAAGvE,KAAKwE,GACjCxE,KAAKg3D,OAAOzyD,EAAIvE,KAAKuE,EACrBvE,KAAKg3D,OAAOxyD,EAAIxE,KAAKwE,GAEjBxE,KAAKmyC,KAAK2B,MAAM+iB,qBAAuBz0B,EAAO4yB,MAAMsE,uBAAyBt5D,KAAKmyC,KAAK2B,MAAM+iB,qBAAuBz0B,EAAO4yB,MAAM8B,qBAAwB92D,KAAKmyC,KAAK2B,MAAM+iB,qBAAuBz0B,EAAO4yB,MAAMuE,uBAA6D,IAApCv5D,KAAKmyC,KAAK2B,MAAMojB,mBAEtPl3D,KAAKmyC,KAAK2B,MAAMid,cAAgB/wD,KAChCA,KAAKmyC,KAAK2B,MAAMvvC,EAAIvE,KAAKuE,EACzBvE,KAAKmyC,KAAK2B,MAAMtvC,EAAIxE,KAAKwE,EACzBxE,KAAKmyC,KAAK2B,MAAMnsC,SAAS0/B,MAAMrnC,KAAKmyC,KAAK2B,MAAMvvC,EAAGvE,KAAKmyC,KAAK2B,MAAMtvC,GAClExE,KAAKmyC,KAAK2B,MAAMkjB,OAAOzyD,EAAIvE,KAAKmyC,KAAK2B,MAAMvvC,EAC3CvE,KAAKmyC,KAAK2B,MAAMkjB,OAAOxyD,EAAIxE,KAAKmyC,KAAK2B,MAAMtvC,GAG/CxE,KAAKkmE,WAAalmE,KAAKmyC,KAAK/rC,MAAMyE,OAAOlG,SAAS3E,KAAKooE,MAAOpoE,KAAKqoE,OAG/DroE,KAAKmyC,KAAKuC,OAEV,MAAO10C,KAKX,KAFA,GAAImE,GAAInE,KAAKmyC,KAAK2B,MAAM0iB,cAAcnyD,OAE/BF,KAEHnE,KAAKmyC,KAAK2B,MAAM0iB,cAAcryD,GAAGkW,SAAStW,KAAK/D,KAAKmyC,KAAK2B,MAAM0iB,cAAcryD,GAAG2M,QAAS9Q,KAAMA,KAAKuE,EAAGvE,KAAKwE,EAAGglE,EAgBnH,OAZ0B,QAAtBxpE,KAAKgpE,cAAyBhpE,KAAKgpE,aAAac,aAAc,EAE1D9pE,KAAKgpE,aAAaxvD,OAAOxZ,SAAU,IAEnCA,KAAKgpE,aAAe,MAGnBhpE,KAAKmyC,KAAK2B,MAAMklB,iBAAiBx7B,MAAQ,GAE9Cx9B,KAAKspE,0BAA0BE,GAG5BxpE,OAYXspE,0BAA2B,SAAUE,GAYjC,IATA,GAAIO,GAAuB19B,OAAOG,UAC9Bw9B,EAAyB,GACzBC,EAAkB,KAKlBC,EAAclqE,KAAKmyC,KAAK2B,MAAMklB,iBAAiB5gB,MAE5C8xB,GAGHA,EAAYC,SAAU,EAElBD,EAAYE,cAAcJ,EAAwBD,GAAsB,KAGxEG,EAAYC,SAAU,GAEjBX,GAAaU,EAAYG,iBAAiBrqE,MAAM,KAC/CwpE,GAAaU,EAAYI,iBAAiBtqE,MAAM,MAElD+pE,EAAuBG,EAAYp2C,OAAO0sB,OAAO,GACjDwpB,EAAyBE,EAAYK,WACrCN,EAAkBC,IAI1BA,EAAclqE,KAAKmyC,KAAK2B,MAAMklB,iBAAiB9gB,IASnD,KAFA,GAAIgyB,GAAclqE,KAAKmyC,KAAK2B,MAAMklB,iBAAiB5gB,MAE7C8xB,IAEGA,EAAYC,SACbD,EAAYE,cAAcJ,EAAwBD,GAAsB,KAEnEP,GAAaU,EAAYG,iBAAiBrqE,MAAM,KAC/CwpE,GAAaU,EAAYI,iBAAiBtqE,MAAM,MAElD+pE,EAAuBG,EAAYp2C,OAAO0sB,OAAO,GACjDwpB,EAAyBE,EAAYK,WACrCN,EAAkBC,GAI1BA,EAAclqE,KAAKmyC,KAAK2B,MAAMklB,iBAAiB9gB,IA4CnD,OAxCwB,QAApB+xB,EAGIjqE,KAAKgpE,eAELhpE,KAAKgpE,aAAawB,mBAAmBxqE,MACrCA,KAAKgpE,aAAe,MAKE,OAAtBhpE,KAAKgpE,cAGLhpE,KAAKgpE,aAAeiB,EACpBA,EAAgBQ,oBAAoBzqE,OAKhCA,KAAKgpE,eAAiBiB,EAGlBA,EAAgBzwD,OAAOxZ,SAAU,IAEjCA,KAAKgpE,aAAe,OAMxBhpE,KAAKgpE,aAAawB,mBAAmBxqE,MAGrCA,KAAKgpE,aAAeiB,EACpBjqE,KAAKgpE,aAAayB,oBAAoBzqE,OAKpB,OAAtBA,KAAKgpE,cAUjB0B,MAAO,SAAUp6C,GAEbtwB,KAAKkmE,YAAa,EAClBlmE,KAAK06D,KAAKpqC,GAAO,IAUrBthB,KAAM,SAAUshB,GAEZ,MAAItwB,MAAKioE,gBAEL33C,GAAMC,kBAIVvwB,KAAKk8D,OAASl8D,KAAKmyC,KAAK+B,KAAKA,MAEzBl0C,KAAKmyC,KAAK2B,MAAM+iB,qBAAuBz0B,EAAO4yB,MAAMsE,uBAAyBt5D,KAAKmyC,KAAK2B,MAAM+iB,qBAAuBz0B,EAAO4yB,MAAM8B,qBAAwB92D,KAAKmyC,KAAK2B,MAAM+iB,qBAAuBz0B,EAAO4yB,MAAMuE,uBAA6D,IAApCv5D,KAAKmyC,KAAK2B,MAAMojB,mBAEtPl3D,KAAKmyC,KAAK2B,MAAM8kB,KAAK9f,SAAS94C,KAAMswB,GAGhCtwB,KAAKi8D,UAAY,GAAKj8D,KAAKi8D,UAAYj8D,KAAKmyC,KAAK2B,MAAMqjB,UAGnDn3D,KAAKk8D,OAASl8D,KAAK6oE,gBAAkB7oE,KAAKmyC,KAAK2B,MAAMsjB,cAGrDp3D,KAAKmyC,KAAK2B,MAAM+kB,MAAM/f,SAAS94C,MAAM,GAKrCA,KAAKmyC,KAAK2B,MAAM+kB,MAAM/f,SAAS94C,MAAM,GAGzCA,KAAK6oE,gBAAkB7oE,KAAKk8D,SAKhCl8D,KAAKkG,GAAK,IAEVlG,KAAKi5C,QAAS,GAGlBj5C,KAAKkmE,YAAa,EAClBlmE,KAAK27D,QAAS,EACd37D,KAAK47D,MAAO,EACZ57D,KAAKi7D,UAAY,KACjBj7D,KAAKy6D,WAAa,KAElBz6D,KAAKkpE,WAAW7hC,MAAMrnC,KAAKuE,EAAGvE,KAAKwE,GAE/BxE,KAAK4oE,WAAY,GAEjB5oE,KAAKmyC,KAAK2B,MAAMojB,kBAGpBl3D,KAAKmyC,KAAK2B,MAAMklB,iBAAiB3gB,QAAQ,mBAAoBr4C,MAEzDA,KAAKmpE,oBAELnpE,KAAKopE,wBAA0BppE,KAAKgpE,cAExChpE,KAAKgpE,aAAe,KAEbhpE,OAYXy8D,YAAa,SAAUR,GAInB,MAFAA,GAAWA,GAAYj8D,KAAKmyC,KAAK2B,MAAMwjB,gBAE/Bt3D,KAAK27D,UAAW,GAAS37D,KAAKg8D,SAAWC,EAAYj8D,KAAKmyC,KAAK+B,KAAKA,MAYhFwoB,aAAc,SAAUT,GAIpB,MAFAA,GAAWA,GAAYj8D,KAAKmyC,KAAK2B,MAAMyjB,iBAE/Bv3D,KAAK47D,QAAS,GAAS57D,KAAKk8D,OAASD,EAAYj8D,KAAKmyC,KAAK+B,KAAKA,MAqB5E+c,mBAAoB,SAAU5zC,EAAMhD,EAAUy8B,EAAiB6zB,GAE3D,GAAK3qE,KAAK27D,OAAV,CAOA,IAAK,GAFDiP,GAAe5qE,KAAKmpE,kBAAoBnpE,KAAKmpE,sBAExChlE,EAAI,EAAGA,EAAIymE,EAAYvmE,OAAQF,IAEpC,GAAIymE,EAAYzmE,GAAGkZ,OAASA,EAC5B,CACIutD,EAAY/9D,OAAO1I,EAAG,EACtB,OAIRymE,EAAYtmE,MACR+Y,KAAMA,EACN2rD,aAAchpE,KAAKgpE,aACnB3uD,SAAUA,EACVy8B,gBAAiBA,EACjB6zB,aAAcA,MAUtBpP,wBAAyB,WAErB,GAAIqP,GAAc5qE,KAAKmpE,iBACvB,IAAKyB,EAAL,CAKA,IAAK,GAAIzmE,GAAI,EAAGA,EAAIymE,EAAYvmE,OAAQF,IACxC,CACI,GAAI0mE,GAAaD,EAAYzmE,EAEzB0mE,GAAW7B,eAAiBhpE,KAAKopE,yBAEjCyB,EAAWxwD,SAAS5W,MAAMonE,EAAW/zB,gBAAiB+zB,EAAWF,cAIzE3qE,KAAKmpE,kBAAoB,KACzBnpE,KAAKopE,wBAA0B,OAQnC/gD,MAAO,WAECroB,KAAK4oE,WAAY,IAEjB5oE,KAAKi5C,QAAS,GAGlBj5C,KAAKi7D,UAAY,KACjBj7D,KAAKy6D,WAAa,KAClBz6D,KAAKwJ,OAAQ,EACbxJ,KAAK27D,QAAS,EACd37D,KAAK47D,MAAO,EACZ57D,KAAK8oE,aAAe,EACpB9oE,KAAK8nE,WAAY,EACjB9nE,KAAK+nE,SAAS1jE,OAAS,EACvBrE,KAAKioE,aAAc,EAEfjoE,KAAKgpE,cAELhpE,KAAKgpE,aAAa8B,iBAAiB9qE,MAGvCA,KAAKgpE,aAAe,MAQxB+B,cAAe,WAEX/qE,KAAK0oE,UAAY,EACjB1oE,KAAK2oE,UAAY,IAMzBvmC,EAAOq3B,QAAQ51D,UAAUsB,YAAci9B,EAAOq3B,QAQ9CtwD,OAAOC,eAAeg5B,EAAOq3B,QAAQ51D,UAAW,YAE5CwF,IAAK,WAED,MAAIrJ,MAAK47D,KAEE,GAGJ57D,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKg8D,YAY1C7yD,OAAOC,eAAeg5B,EAAOq3B,QAAQ51D,UAAW,UAE5CwF,IAAK,WAED,MAAOrJ,MAAKmyC,KAAKC,MAAMwB,OAAOrvC,EAAIvE,KAAKuE,KAY/C4E,OAAOC,eAAeg5B,EAAOq3B,QAAQ51D,UAAW,UAE5CwF,IAAK,WAED,MAAOrJ,MAAKmyC,KAAKC,MAAMwB,OAAOpvC,EAAIxE,KAAKwE,KAmB/C49B,EAAOy3B,MAAQ,SAAU1nB,GAKrBnyC,KAAKmyC,KAAOA,EAOZnyC,KAAK42D,SAAU,EAKf52D,KAAK82C,gBAAkB92C,KAAKmyC,KAK5BnyC,KAAKgrE,mBAAqB,KAK1BhrE,KAAKirE,kBAAoB,KAKzBjrE,KAAKkrE,iBAAmB,KAKxBlrE,KAAKmrE,mBAAqB,KAK1BnrE,KAAKorE,mBAAqB,KAK1BprE,KAAKqrE,oBAAsB,KAM3BrrE,KAAKuwB,gBAAiB,EAMtBvwB,KAAKswB,MAAQ,KAMbtwB,KAAKsrE,cAAgB,KAMrBtrE,KAAKurE,aAAe,KAMpBvrE,KAAKwrE,YAAc,KAMnBxrE,KAAKyrE,cAAgB,KAMrBzrE,KAAK0rE,cAAgB,KAMrB1rE,KAAK2rE,eAAiB,KAMtB3rE,KAAKurE,aAAe,MAIxBnpC,EAAOy3B,MAAMh2D,WAMTuL,MAAO,WAEH,GAA2B,OAAvBpP,KAAKsrE,cAAT,CAMA,GAAIztB,GAAQ79C,IAERA,MAAKmyC,KAAKyM,OAAO2Z,QAEjBv4D,KAAKsrE,cAAgB,SAAUh7C,GAC3B,MAAOutB,GAAM+tB,aAAat7C,IAG9BtwB,KAAKurE,aAAe,SAAUj7C,GAC1B,MAAOutB,GAAMguB,YAAYv7C,IAG7BtwB,KAAKwrE,YAAc,SAAUl7C,GACzB,MAAOutB,GAAMiuB,WAAWx7C,IAG5BtwB,KAAKyrE,cAAgB,SAAUn7C,GAC3B,MAAOutB,GAAMkuB,aAAaz7C,IAG9BtwB,KAAK0rE,cAAgB,SAAUp7C,GAC3B,MAAOutB,GAAMmuB,aAAa17C,IAG9BtwB,KAAK2rE,eAAiB,SAAUr7C,GAC5B,MAAOutB,GAAMouB,cAAc37C,IAG/BtwB,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,aAAc5c,KAAKsrE,eAAe,GACpEtrE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,YAAa5c,KAAKurE,cAAc,GAClEvrE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,WAAY5c,KAAKwrE,aAAa,GAChExrE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,cAAe5c,KAAK2rE,gBAAgB,GAEjE3rE,KAAKmyC,KAAKyM,OAAOsN,WAElBlsD,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,aAAc5c,KAAKyrE,eAAe,GACpEzrE,KAAKmyC,KAAK9+B,OAAOuJ,iBAAiB,aAAc5c,KAAK0rE,eAAe,OAUhFQ,uBAAwB,WAEpBlsE,KAAKmsE,mBAAqB,SAAU77C,GAChCA,EAAMC,kBAGVjd,SAASsJ,iBAAiB,YAAa5c,KAAKmsE,oBAAoB,IASpEP,aAAc,SAAUt7C,GASpB,GAPAtwB,KAAKswB,MAAQA,EAETtwB,KAAKgrE,oBAELhrE,KAAKgrE,mBAAmBjnE,KAAK/D,KAAK82C,gBAAiBxmB,GAGlDtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,QAAtC,CAKI52D,KAAKuwB,gBAELD,EAAMC,gBAMV,KAAK,GAAIpsB,GAAI,EAAGA,EAAImsB,EAAM87C,eAAe/nE,OAAQF,IAE7CnE,KAAKmyC,KAAK2B,MAAMwmB,aAAahqC,EAAM87C,eAAejoE,MAW1D8nE,cAAe,SAAU37C,GASrB,GAPAtwB,KAAKswB,MAAQA,EAETtwB,KAAKqrE,qBAELrrE,KAAKqrE,oBAAoBtnE,KAAK/D,KAAK82C,gBAAiBxmB,GAGnDtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,QAAtC,CAKI52D,KAAKuwB,gBAELD,EAAMC,gBAKV,KAAK,GAAIpsB,GAAI,EAAGA,EAAImsB,EAAM87C,eAAe/nE,OAAQF,IAE7CnE,KAAKmyC,KAAK2B,MAAM6mB,YAAYrqC,EAAM87C,eAAejoE,MAWzD4nE,aAAc,SAAUz7C,GAEpBtwB,KAAKswB,MAAQA,EAETtwB,KAAKmrE,oBAELnrE,KAAKmrE,mBAAmBpnE,KAAK/D,KAAK82C,gBAAiBxmB,GAGlDtwB,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAK42D,SAKlC52D,KAAKuwB,gBAELD,EAAMC,kBAWdy7C,aAAc,SAAU17C,GAEpBtwB,KAAKswB,MAAQA,EAETtwB,KAAKorE,oBAELprE,KAAKorE,mBAAmBrnE,KAAK/D,KAAK82C,gBAAiBxmB,GAGnDtwB,KAAKuwB,gBAELD,EAAMC,kBAUds7C,YAAa,SAAUv7C,GAEnBtwB,KAAKswB,MAAQA,EAETtwB,KAAKirE,mBAELjrE,KAAKirE,kBAAkBlnE,KAAK/D,KAAK82C,gBAAiBxmB,GAGlDtwB,KAAKuwB,gBAELD,EAAMC,gBAGV,KAAK,GAAIpsB,GAAI,EAAGA,EAAImsB,EAAM87C,eAAe/nE,OAAQF,IAE7CnE,KAAKmyC,KAAK2B,MAAM0mB,cAAclqC,EAAM87C,eAAejoE,KAU3D2nE,WAAY,SAAUx7C,GAElBtwB,KAAKswB,MAAQA,EAETtwB,KAAKkrE,kBAELlrE,KAAKkrE,iBAAiBnnE,KAAK/D,KAAK82C,gBAAiBxmB,GAGjDtwB,KAAKuwB,gBAELD,EAAMC,gBAMV,KAAK,GAAIpsB,GAAI,EAAGA,EAAImsB,EAAM87C,eAAe/nE,OAAQF,IAE7CnE,KAAKmyC,KAAK2B,MAAM6mB,YAAYrqC,EAAM87C,eAAejoE,KASzD6K,KAAM,WAEEhP,KAAKmyC,KAAKyM,OAAO2Z,QAEjBv4D,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,aAAcld,KAAKsrE,eACxDtrE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,YAAald,KAAKurE,cACvDvrE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,WAAYld,KAAKwrE,aACtDxrE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,aAAcld,KAAKyrE,eACxDzrE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,aAAcld,KAAK0rE,eACxD1rE,KAAKmyC,KAAK9+B,OAAO6J,oBAAoB,cAAeld,KAAK2rE,mBAOrEvpC,EAAOy3B,MAAMh2D,UAAUsB,YAAci9B,EAAOy3B,MAS5C1wD,OAAOC,eAAeg5B,EAAOy3B,MAAMh2D,UAAW,YAE1CwF,IAAK,WACD,OAAQrJ,KAAK42D,SAEjBttD,IAAK,SAAUC,GACXvJ,KAAK42D,SAAWrtD,KAyBxB64B,EAAO23B,QAAU,SAAU5nB,GAKvBnyC,KAAKmyC,KAAOA,EAMZnyC,KAAKqsE,oBAMLrsE,KAAKssE,YAOLtsE,KAAKusE,SAAU,EAOfvsE,KAAK42D,SAAU,EAOf52D,KAAKwsE,2BAA6BtpE,UAAUupE,qBAAuBvpE,UAAUwpE,gBAA8D,IAA3CxpE,UAAUC,UAAUE,QAAQ,eAAwBH,UAAUypE,YAQ9J3sE,KAAK4sE,wBAQL5sE,KAAK6sE,mBAKL7sE,KAAK82C,gBAAkB92C,KAKvBA,KAAK8sE,kBAAoB,KAKzB9sE,KAAK+sE,qBAAuB,KAK5B/sE,KAAK48D,eAAiB,KAKtB58D,KAAK88D,aAAe,KAKpB98D,KAAKgtE,eAAiB,KAKtBhtE,KAAKitE,gBAAkB,KAMvBjtE,KAAKktE,oBAAsB,KAM3BltE,KAAKmtE,qBAAuB,KAM5BntE,KAAKotE,WACD,GAAIhrC,GAAOirC,UAAUl7B,EAAMnyC,MAC3B,GAAIoiC,GAAOirC,UAAUl7B,EAAMnyC,MAC3B,GAAIoiC,GAAOirC,UAAUl7B,EAAMnyC,MAC3B,GAAIoiC,GAAOirC,UAAUl7B,EAAMnyC,QAKnCoiC,EAAO23B,QAAQl2D,WAUXw5D,aAAc,SAAUvsD,EAASw8D,GAEJ,mBAAdA,KAEPttE,KAAK8sE,kBAAoD,kBAAxBQ,GAAUC,UAA4BD,EAAUC,UAAYvtE,KAAK8sE,kBAClG9sE,KAAK+sE,qBAA0D,kBAA3BO,GAAUE,aAA+BF,EAAUE,aAAextE,KAAK+sE,qBAC3G/sE,KAAK48D,eAA8C,kBAArB0Q,GAAU3U,OAAyB2U,EAAU3U,OAAS34D,KAAK48D,eACzF58D,KAAK88D,aAA0C,kBAAnBwQ,GAAU1U,KAAuB0U,EAAU1U,KAAO54D,KAAK88D,aACnF98D,KAAKgtE,eAA8C,kBAArBM,GAAUG,OAAyBH,EAAUG,OAASztE,KAAKgtE,eACzFhtE,KAAKitE,gBAAgD,kBAAtBK,GAAUI,QAA0BJ,EAAUI,QAAU1tE,KAAKitE,gBAC5FjtE,KAAK82C,gBAAkBhmC,IAW/B1B,MAAO,WAEH,IAAIpP,KAAKusE,QAAT,CAMAvsE,KAAKusE,SAAU,CAEf,IAAI1uB,GAAQ79C,IAEZA,MAAK2tE,oBAAsB,SAAUr9C,GACjC,MAAOutB,GAAM+vB,mBAAmBt9C,IAGpCtwB,KAAK6tE,uBAAyB,SAAUv9C,GACpC,MAAOutB,GAAMiwB,sBAAsBx9C,IAGvC5sB,OAAOkZ,iBAAiB,mBAAoB5c,KAAK2tE,qBAAqB,GACtEjqE,OAAOkZ,iBAAiB,sBAAuB5c,KAAK6tE,wBAAwB,KAWhFD,mBAAoB,SAAUt9C,GAE1B,GAAIy9C,GAASz9C,EAAMmoC,OACnBz4D,MAAKssE,SAAShoE,KAAKypE,GACnB/tE,KAAKotE,UAAUW,EAAOphE,OAAOqhE,QAAQD,IAWzCD,sBAAuB,SAAUx9C,GAE7B,GAAI29C,GAAa39C,EAAMmoC,OAEvB,KAAK,GAAIt0D,KAAKnE,MAAKssE,SAEXtsE,KAAKssE,SAASnoE,GAAGwI,QAAUshE,EAAWthE,OAEtC3M,KAAKssE,SAASz/D,OAAO1I,EAAE,EAI/BnE,MAAKotE,UAAUa,EAAWthE,OAAOuhE,cASrC10D,OAAQ,WAEJxZ,KAAKmuE,gBAELnuE,KAAKouE,KAAKC,aACVruE,KAAKsuE,KAAKD,aACVruE,KAAKuuE,KAAKF,aACVruE,KAAKwuE,KAAKH,cAUdF,cAAe,WAEX,GAAIjrE,UAAuB,YAEvB,GAAIurE,GAAcvrE,UAAUypE,kBAE3B,IAAIzpE,UAA6B,kBAElC,GAAIurE,GAAcvrE,UAAUupE,wBAE3B,IAAIvpE,UAA0B,eAE/B,GAAIurE,GAAcvrE,UAAUwpE,gBAGhC,IAAI+B,EACJ,CACIzuE,KAAKssE,WAIL,KAAK,GAFDoC,IAAkB,EAEbvqE,EAAI,EAAGA,EAAIsqE,EAAYpqE,eAEjBoqE,GAAYtqE,KAAOnE,KAAK4sE,qBAAqBzoE,KAEpDuqE,GAAkB,EAClB1uE,KAAK4sE,qBAAqBzoE,SAAYsqE,GAAYtqE,IAGlDsqE,EAAYtqE,IAEZnE,KAAKssE,SAAShoE,KAAKmqE,EAAYtqE,IAIzB,IAANA,GAdgCA,KAoBxC,GAAIuqE,EACJ,CAII,IAAK,GAFDC,GADAC,GAAqBC,cAAgBC,eAGhCjqE,EAAI,EAAGA,EAAI7E,KAAKotE,UAAU/oE,OAAQQ,IAIvC,GAFA8pE,EAAY3uE,KAAKotE,UAAUvoE,GAEvB8pE,EAAUI,UAEV,IAAK,GAAIC,GAAI,EAAGA,EAAIhvE,KAAKssE,SAASjoE,OAAQ2qE,IAElChvE,KAAKssE,SAAS0C,GAAGriE,QAAUgiE,EAAUhiE,QAErCiiE,EAAiBC,WAAWF,EAAUhiE,QAAS,EAC/CiiE,EAAiBE,WAAWjqE,IAAK,EAMjD,KAAK,GAAI4/B,GAAI,EAAGA,EAAIzkC,KAAKotE,UAAU/oE,OAAQogC,IAIvC,GAFAkqC,EAAY3uE,KAAKotE,UAAU3oC,IAEvBmqC,EAAiBE,WAAWrqC,GAAhC,CAKIzkC,KAAKssE,SAASjoE,OAAS,GAEvBsqE,EAAUT,YAGd;IAAK,GAAIlkC,GAAI,EAAGA,EAAIhqC,KAAKssE,SAASjoE,SAE1BuqE,EAAiBE,WAAWrqC,GAFMuF,IAC1C,CAMI,GAAIilC,GAASjvE,KAAKssE,SAAStiC,EAE3B,IAAIilC,EACJ,CACI,GAAIL,EAAiBC,WAAWI,EAAOtiE,OACvC,CACIgiE,EAAUT,YACV,UAIAS,EAAUX,QAAQiB,GAClBL,EAAiBC,WAAWI,EAAOtiE,QAAS,EAC5CiiE,EAAiBE,WAAWrqC,IAAK,MAKrCkqC,GAAUT,kBAYlCgB,aAAc,SAAU3lE,GAEpB,IAAK,GAAIpF,GAAI,EAAGA,EAAInE,KAAKotE,UAAU/oE,OAAQF,IAEvCnE,KAAKotE,UAAUjpE,GAAGgrE,SAAW5lE,GAUrCyF,KAAM,WAEFhP,KAAKusE,SAAU,EAEf7oE,OAAOwZ,oBAAoB,mBAAoBld,KAAK2tE,qBACpDjqE,OAAOwZ,oBAAoB,sBAAuBld,KAAK6tE,yBAQ3DxlD,MAAO,WAEHroB,KAAKwZ,QAEL,KAAK,GAAIrV,GAAI,EAAGA,EAAInE,KAAKotE,UAAU/oE,OAAQF,IAEvCnE,KAAKotE,UAAUjpE,GAAGkkB,SAY1Bo0C,YAAa,SAAU2S,EAAYnT,GAE/B,IAAK,GAAI93D,GAAI,EAAGA,EAAInE,KAAKotE,UAAU/oE,OAAQF,IAEvC,GAAInE,KAAKotE,UAAUjpE,GAAGs4D,YAAY2S,EAAYnT,MAAc,EAExD,OAAO,CAIf,QAAO,GAWXS,aAAc,SAAU0S,EAAYnT,GAEhC,IAAK,GAAI93D,GAAI,EAAGA,EAAInE,KAAKotE,UAAU/oE,OAAQF,IAEvC,GAAInE,KAAKotE,UAAUjpE,GAAGu4D,aAAa0S,EAAYnT,MAAc,EAEzD,OAAO,CAIf,QAAO,GAUXN,OAAQ,SAAUyT,GAEd,IAAK,GAAIjrE,GAAI,EAAGA,EAAInE,KAAKotE,UAAU/oE,OAAQF,IAEvC,GAAInE,KAAKotE,UAAUjpE,GAAGw3D,OAAOyT,MAAgB,EAEzC,OAAO,CAIf,QAAO,GAQXljE,QAAS,WAELlM,KAAKgP,MAEL,KAAK,GAAI7K,GAAI,EAAGA,EAAInE,KAAKotE,UAAU/oE,OAAQF,IAEvCnE,KAAKotE,UAAUjpE,GAAG+H,YAO9Bk2B,EAAO23B,QAAQl2D,UAAUsB,YAAci9B,EAAO23B,QAS9C5wD,OAAOC,eAAeg5B,EAAO23B,QAAQl2D,UAAW,YAE5CwF,IAAK,WACD,OAAQrJ,KAAK42D,SAEjBttD,IAAK,SAAUC,GACXvJ,KAAK42D,SAAWrtD,KAWxBJ,OAAOC,eAAeg5B,EAAO23B,QAAQl2D,UAAW,UAE5CwF,IAAK,WACD,MAAOrJ,MAAKusE,WAWpBpjE,OAAOC,eAAeg5B,EAAO23B,QAAQl2D,UAAW,aAE5CwF,IAAK,WACD,MAAOrJ,MAAKwsE,4BAWpBrjE,OAAOC,eAAeg5B,EAAO23B,QAAQl2D,UAAW,iBAE5CwF,IAAK,WACD,MAAOrJ,MAAKssE,SAASjoE,UAW7B8E,OAAOC,eAAeg5B,EAAO23B,QAAQl2D,UAAW,QAE5CwF,IAAK,WACD,MAAOrJ,MAAKotE,UAAU,MAW9BjkE,OAAOC,eAAeg5B,EAAO23B,QAAQl2D,UAAW,QAE5CwF,IAAK,WACD,MAAOrJ,MAAKotE,UAAU,MAW9BjkE,OAAOC,eAAeg5B,EAAO23B,QAAQl2D,UAAW,QAE5CwF,IAAK,WACD,MAAOrJ,MAAKotE,UAAU,MAW9BjkE,OAAOC,eAAeg5B,EAAO23B,QAAQl2D,UAAW,QAE5CwF,IAAK,WACD,MAAOrJ,MAAKotE,UAAU,MAK9BhrC,EAAO23B,QAAQsV,SAAW,EAC1BjtC,EAAO23B,QAAQuV,SAAW,EAC1BltC,EAAO23B,QAAQwV,SAAW,EAC1BntC,EAAO23B,QAAQyV,SAAW,EAC1BptC,EAAO23B,QAAQ0V,SAAW,EAC1BrtC,EAAO23B,QAAQ2V,SAAW,EAC1BttC,EAAO23B,QAAQ4V,SAAW,EAC1BvtC,EAAO23B,QAAQ6V,SAAW,EAC1BxtC,EAAO23B,QAAQ8V,SAAW,EAC1BztC,EAAO23B,QAAQ+V,SAAW,EAC1B1tC,EAAO23B,QAAQgW,UAAY,GAC3B3tC,EAAO23B,QAAQiW,UAAY,GAC3B5tC,EAAO23B,QAAQkW,UAAY,GAC3B7tC,EAAO23B,QAAQmW,UAAY,GAC3B9tC,EAAO23B,QAAQoW,UAAY,GAC3B/tC,EAAO23B,QAAQqW,UAAY,GAE3BhuC,EAAO23B,QAAQsW,OAAS,EACxBjuC,EAAO23B,QAAQuW,OAAS,EACxBluC,EAAO23B,QAAQwW,OAAS,EACxBnuC,EAAO23B,QAAQyW,OAAS,EACxBpuC,EAAO23B,QAAQ0W,OAAS,EACxBruC,EAAO23B,QAAQ2W,OAAS,EACxBtuC,EAAO23B,QAAQ4W,OAAS,EACxBvuC,EAAO23B,QAAQ6W,OAAS,EACxBxuC,EAAO23B,QAAQ8W,OAAS,EACxBzuC,EAAO23B,QAAQ+W,OAAS,EAMxB1uC,EAAO23B,QAAQgX,UAAY,EAC3B3uC,EAAO23B,QAAQiX,UAAY,EAC3B5uC,EAAO23B,QAAQkX,UAAY,EAC3B7uC,EAAO23B,QAAQmX,UAAY,EAC3B9uC,EAAO23B,QAAQoX,oBAAsB,EACrC/uC,EAAO23B,QAAQqX,qBAAuB,EACtChvC,EAAO23B,QAAQsX,qBAAuB,EACtCjvC,EAAO23B,QAAQuX,sBAAwB,EACvClvC,EAAO23B,QAAQwX,aAAe,EAC9BnvC,EAAO23B,QAAQyX,cAAgB,EAC/BpvC,EAAO23B,QAAQ0X,0BAA4B,GAC3CrvC,EAAO23B,QAAQ2X,2BAA6B,GAE5CtvC,EAAO23B,QAAQ4X,kBAAoB,GACnCvvC,EAAO23B,QAAQ6X,mBAAqB,GACpCxvC,EAAO23B,QAAQ8X,gBAAkB,GACjCzvC,EAAO23B,QAAQ+X,kBAAoB,GAGnC1vC,EAAO23B,QAAQgY,qBAAuB,EACtC3vC,EAAO23B,QAAQiY,qBAAuB,EACtC5vC,EAAO23B,QAAQkY,sBAAwB,EACvC7vC,EAAO23B,QAAQmY,sBAAwB,EAIvC9vC,EAAO23B,QAAQoY,QAAU,EACzB/vC,EAAO23B,QAAQqY,aAAe,EAC9BhwC,EAAO23B,QAAQsY,aAAe,EAC9BjwC,EAAO23B,QAAQuY,eAAiB,EAChClwC,EAAO23B,QAAQwY,SAAW,EAC1BnwC,EAAO23B,QAAQyY,SAAW,EAC1BpwC,EAAO23B,QAAQ0Y,SAAW,EAC1BrwC,EAAO23B,QAAQ2Y,SAAW,EAC1BtwC,EAAO23B,QAAQ4Y,aAAe,EAC9BvwC,EAAO23B,QAAQ6Y,YAAc,EAC7BxwC,EAAO23B,QAAQ8Y,wBAA0B,GACzCzwC,EAAO23B,QAAQ+Y,yBAA2B,GAC1C1wC,EAAO23B,QAAQgZ,cAAgB,GAC/B3wC,EAAO23B,QAAQiZ,gBAAkB,GACjC5wC,EAAO23B,QAAQkZ,gBAAkB,GACjC7wC,EAAO23B,QAAQmZ,iBAAmB,GAClC9wC,EAAO23B,QAAQoZ,mBAAqB,EACpC/wC,EAAO23B,QAAQqZ,mBAAqB,EACpChxC,EAAO23B,QAAQsZ,oBAAsB,EACrCjxC,EAAO23B,QAAQuZ,oBAAsB,EAiBrClxC,EAAOirC,UAAY,SAAUl7B,EAAMohC,GAK/BvzE,KAAKmyC,KAAOA,EAMZnyC,KAAK2M,MAAQ,KAMb3M,KAAK+uE,WAAY,EAKjB/uE,KAAK82C,gBAAkB92C,KAKvBA,KAAK8sE,kBAAoB,KAKzB9sE,KAAK+sE,qBAAuB,KAK5B/sE,KAAK48D,eAAiB,KAKtB58D,KAAK88D,aAAe,KAKpB98D,KAAKgtE,eAAiB,KAKtBhtE,KAAKitE,gBAAkB,KAKvBjtE,KAAKmvE,SAAW,IAMhBnvE,KAAKwzE,WAAaD,EAMlBvzE,KAAKyzE,QAAU,KAMfzzE,KAAK0zE,eAAiB,KAMtB1zE,KAAK2zE,YAML3zE,KAAK4zE,YAAc,EAMnB5zE,KAAK6zE,SAML7zE,KAAK8zE,SAAW,GAIpB1xC,EAAOirC,UAAUxpE,WAUbw5D,aAAc,SAAUvsD,EAASw8D,GAEJ,mBAAdA,KAEPttE,KAAK8sE,kBAAoD,kBAAxBQ,GAAUC,UAA4BD,EAAUC,UAAYvtE,KAAK8sE,kBAClG9sE,KAAK+sE,qBAA0D,kBAA3BO,GAAUE,aAA+BF,EAAUE,aAAextE,KAAK+sE,qBAC3G/sE,KAAK48D,eAA8C,kBAArB0Q,GAAU3U,OAAyB2U,EAAU3U,OAAS34D,KAAK48D,eACzF58D,KAAK88D,aAA0C,kBAAnBwQ,GAAU1U,KAAuB0U,EAAU1U,KAAO54D,KAAK88D,aACnF98D,KAAKgtE,eAA8C,kBAArBM,GAAUG,OAAyBH,EAAUG,OAASztE,KAAKgtE,eACzFhtE,KAAKitE,gBAAgD,kBAAtBK,GAAUI,QAA0BJ,EAAUI,QAAU1tE,KAAKitE,kBAapG8G,UAAW,SAAU3E,GAEjB,MAAIpvE,MAAK2zE,SAASvE,GAEPpvE,KAAK2zE,SAASvE,GAId,MAUff,WAAY,WAER,GAAKruE,KAAK+uE,WAAc/uE,KAAKmyC,KAAK2B,MAAM8iB,SAAY52D,KAAKmyC,KAAK2B,MAAM2kB,QAAQ7B,WAAY52D,KAAKyzE,QAAQO,WAAch0E,KAAKyzE,QAAQO,YAAch0E,KAAK0zE,gBAAnJ,CAKA,IAAK,GAAIvvE,GAAI,EAAGA,EAAInE,KAAK4zE,YAAazvE,IACtC,CACI,GAAI8vE,GAAeC,MAAMl0E,KAAKyzE,QAAQU,QAAQhwE,IAAMnE,KAAKyzE,QAAQU,QAAQhwE,GAAGoF,MAAQvJ,KAAKyzE,QAAQU,QAAQhwE,EAErG8vE,KAAiBj0E,KAAK2zE,SAASxvE,GAAGoF,QAEb,IAAjB0qE,EAEAj0E,KAAKo0E,kBAAkBjwE,EAAG8vE,GAEJ,IAAjBA,EAELj0E,KAAKq0E,gBAAgBlwE,EAAG8vE,GAIxBj0E,KAAKs0E,mBAAmBnwE,EAAG8vE,IAKvC,IAAK,GAAItnE,GAAQ,EAAGA,EAAQ3M,KAAK8zE,SAAUnnE,IAC3C,CACI,GAAIpD,GAAQvJ,KAAKyzE,QAAQc,KAAK5nE,EAEzBpD,GAAQ,GAAKA,EAAQvJ,KAAKmvE,UAAsB,EAAR5lE,GAAaA,GAASvJ,KAAKmvE,SAEpEnvE,KAAKw0E,kBAAkB7nE,EAAOpD,GAI9BvJ,KAAKw0E,kBAAkB7nE,EAAO,GAItC3M,KAAK0zE,eAAiB1zE,KAAKyzE,QAAQO,YAUvChG,QAAS,SAAUiB,GAEf,GAAIwF,IAAmBz0E,KAAK+uE,SAE5B/uE,MAAK+uE,WAAY,EACjB/uE,KAAK2M,MAAQsiE,EAAOtiE,MAEpB3M,KAAKyzE,QAAUxE,EAEfjvE,KAAK2zE,YACL3zE,KAAK4zE,YAAc3E,EAAOkF,QAAQ9vE,OAElCrE,KAAK6zE,SACL7zE,KAAK8zE,SAAW7E,EAAOsF,KAAKlwE,MAE5B,KAAK,GAAIgB,GAAI,EAAGA,EAAIrF,KAAK8zE,SAAUzuE,IAE/BrF,KAAK6zE,MAAMxuE,GAAK4pE,EAAOsF,KAAKlvE,EAGhC,KAAK,GAAI+pE,KAAcH,GAAOkF,QAE1B/E,EAAax3D,SAASw3D,EAAY,IAClCpvE,KAAK2zE,SAASvE,GAAc,GAAIhtC,GAAOsyC,cAAc10E,KAAMovE,EAG3DqF,IAAmBz0E,KAAKwzE,WAAW1G,mBAEnC9sE,KAAKwzE,WAAW1G,kBAAkB/oE,KAAK/D,KAAKwzE,WAAW18B,gBAAiB92C,KAAK2M,OAG7E8nE,GAAmBz0E,KAAK8sE,mBAExB9sE,KAAK8sE,kBAAkB/oE,KAAK/D,KAAK82C,kBAUzCo3B,WAAY,WAER,GAAIuG,GAAkBz0E,KAAK+uE,UACvB4F,EAAqB30E,KAAK2M,KAE9B3M,MAAK+uE,WAAY,EACjB/uE,KAAK2M,MAAQ,KAEb3M,KAAKyzE,QAAUhmE,MAEf,KAAK,GAAItJ,GAAI,EAAGA,EAAInE,KAAK4zE,YAAazvE,IAElCnE,KAAK2zE,SAASxvE,GAAG+H,SAGrBlM,MAAK2zE,YACL3zE,KAAK4zE,YAAc,EAEnB5zE,KAAK6zE,SACL7zE,KAAK8zE,SAAW,EAEZW,GAAmBz0E,KAAKwzE,WAAWzG,sBAEnC/sE,KAAKwzE,WAAWzG,qBAAqBhpE,KAAK/D,KAAKwzE,WAAW18B,gBAAiB69B,GAG3EF,GAAmBz0E,KAAK+sE,sBAExB/sE,KAAK+sE,qBAAqBhpE,KAAK/D,KAAK82C,kBAU5C5qC,QAAS,WAELlM,KAAKyzE,QAAUhmE,MAEf,KAAK,GAAItJ,GAAI,EAAGA,EAAInE,KAAK4zE,YAAazvE,IAElCnE,KAAK2zE,SAASxvE,GAAG+H,SAGrBlM,MAAK2zE,YACL3zE,KAAK4zE,YAAc,EAEnB5zE,KAAK6zE,SACL7zE,KAAK8zE,SAAW,EAEhB9zE,KAAK8sE,kBAAoB,KACzB9sE,KAAK+sE,qBAAuB,KAC5B/sE,KAAK48D,eAAiB,KACtB58D,KAAK88D,aAAe,KACpB98D,KAAKgtE,eAAiB,KACtBhtE,KAAKitE,gBAAkB,MAU3BuH,kBAAmB,SAAU7nE,EAAOpD,GAE5BvJ,KAAK6zE,MAAMlnE,KAAWpD,IAK1BvJ,KAAK6zE,MAAMlnE,GAASpD,EAEhBvJ,KAAKwzE,WAAWxG,gBAEhBhtE,KAAKwzE,WAAWxG,eAAejpE,KAAK/D,KAAKwzE,WAAW18B,gBAAiB92C,KAAM2M,EAAOpD,GAGlFvJ,KAAKgtE,gBAELhtE,KAAKgtE,eAAejpE,KAAK/D,KAAK82C,gBAAiB92C,KAAM2M,EAAOpD,KAYpE6qE,kBAAmB,SAAUhF,EAAY7lE,GAEjCvJ,KAAKwzE,WAAW5W,gBAEhB58D,KAAKwzE,WAAW5W,eAAe74D,KAAK/D,KAAKwzE,WAAW18B,gBAAiBs4B,EAAY7lE,EAAOvJ,KAAK2M,OAG7F3M,KAAK48D,gBAEL58D,KAAK48D,eAAe74D,KAAK/D,KAAK82C,gBAAiBs4B,EAAY7lE,GAG3DvJ,KAAK2zE,SAASvE,IAEdpvE,KAAK2zE,SAASvE,GAAYgF,kBAAkB7qE,IAYpD8qE,gBAAiB,SAAUjF,EAAY7lE,GAE/BvJ,KAAKwzE,WAAW1W,cAEhB98D,KAAKwzE,WAAW1W,aAAa/4D,KAAK/D,KAAKwzE,WAAW18B,gBAAiBs4B,EAAY7lE,EAAOvJ,KAAK2M,OAG3F3M,KAAK88D,cAEL98D,KAAK88D,aAAa/4D,KAAK/D,KAAK82C,gBAAiBs4B,EAAY7lE,GAGzDvJ,KAAK2zE,SAASvE,IAEdpvE,KAAK2zE,SAASvE,GAAYiF,gBAAgB9qE,IAYlD+qE,mBAAoB,SAAUlF,EAAY7lE,GAElCvJ,KAAKwzE,WAAWvG,iBAEhBjtE,KAAKwzE,WAAWvG,gBAAgBlpE,KAAK/D,KAAKwzE,WAAW18B,gBAAiBs4B,EAAY7lE,EAAOvJ,KAAK2M,OAG9F3M,KAAKitE,iBAELjtE,KAAKitE,gBAAgBlpE,KAAK/D,KAAK82C,gBAAiBs4B,EAAY7lE,GAG5DvJ,KAAK2zE,SAASvE,IAEdpvE,KAAK2zE,SAASvE,GAAYkF,mBAAmB/qE,IAYrDqrE,KAAM,SAAUC,GAEZ,MAAI70E,MAAK6zE,MAAMgB,GAEJ70E,KAAK6zE,MAAMgB,IAGf,GAWXlZ,OAAQ,SAAUyT,GAEd,MAAIpvE,MAAK2zE,SAASvE,GAEPpvE,KAAK2zE,SAASvE,GAAYzT,QAG9B,GAWXC,KAAM,SAAUwT,GAEZ,MAAIpvE,MAAK2zE,SAASvE,GAEPpvE,KAAK2zE,SAASvE,GAAYxT,MAG9B,GAYXc,aAAc,SAAU0S,EAAYnT,GAEhC,MAAIj8D,MAAK2zE,SAASvE,GAEPpvE,KAAK2zE,SAASvE,GAAY1S,aAAaT,GAFlD,QAeJQ,YAAa,SAAU2S,EAAYnT,GAE/B,MAAIj8D,MAAK2zE,SAASvE,GAEPpvE,KAAK2zE,SAASvE,GAAY3S,YAAYR,GAFjD,QAeJ6Y,YAAa,SAAU1F,GAEnB,MAAIpvE,MAAK2zE,SAASvE,GAEPpvE,KAAK2zE,SAASvE,GAAY7lE,MAG9B,MASX8e,MAAO,WAEH,IAAK,GAAIxjB,GAAI,EAAGA,EAAI7E,KAAK6zE,MAAMxvE,OAAQQ,IAEnC7E,KAAK6zE,MAAMhvE,GAAK,IAO5Bu9B,EAAOirC,UAAUxpE,UAAUsB,YAAci9B,EAAOirC,UAiBhDjrC,EAAOsyC,cAAgB,SAAU5uC,EAAKspC,GAKlCpvE,KAAK8lC,IAAMA,EAKX9lC,KAAKmyC,KAAOrM,EAAIqM,KAMhBnyC,KAAK27D,QAAS,EAMd37D,KAAK47D,MAAO,EAMZ57D,KAAKg8D,SAAW,EAQhBh8D,KAAKi8D,SAAW,EAMhBj8D,KAAKk8D,OAAS,EAMdl8D,KAAKm8D,QAAU,EAMfn8D,KAAKuJ,MAAQ,EAKbvJ,KAAKovE,WAAaA,EAKlBpvE,KAAK24D,OAAS,GAAIv2B,GAAOuW,OAKzB34C,KAAK44D,KAAO,GAAIx2B,GAAOuW,OAKvB34C,KAAK0tE,QAAU,GAAItrC,GAAOuW,QAI9BvW,EAAOsyC,cAAc7wE,WASjBuwE,kBAAmB,SAAU7qE,GAEzBvJ,KAAK27D,QAAS,EACd37D,KAAK47D,MAAO,EACZ57D,KAAKg8D,SAAWh8D,KAAKmyC,KAAK+B,KAAKA,KAC/Bl0C,KAAKi8D,SAAW,EAChBj8D,KAAKm8D,QAAU,EACfn8D,KAAKuJ,MAAQA,EAEbvJ,KAAK24D,OAAO7f,SAAS94C,KAAMuJ,IAW/B8qE,gBAAiB,SAAU9qE,GAEvBvJ,KAAK27D,QAAS,EACd37D,KAAK47D,MAAO,EACZ57D,KAAKk8D,OAASl8D,KAAKmyC,KAAK+B,KAAKA,KAC7Bl0C,KAAKuJ,MAAQA,EAEbvJ,KAAK44D,KAAK9f,SAAS94C,KAAMuJ,IAW7B+qE,mBAAoB,SAAU/qE,GAE1BvJ,KAAKuJ,MAAQA,EAEbvJ,KAAK0tE,QAAQ50B,SAAS94C,KAAMuJ,IAWhCkzD,YAAa,SAAUR,GAInB,MAFAA,GAAWA,GAAY,IAEfj8D,KAAK27D,UAAW,GAAS37D,KAAKg8D,SAAWC,EAAYj8D,KAAKmyC,KAAK+B,KAAKA,MAWhFwoB,aAAc,SAAUT,GAIpB,MAFAA,GAAWA,GAAY,IAEfj8D,KAAK47D,QAAS,GAAS57D,KAAKk8D,OAASD,EAAYj8D,KAAKmyC,KAAK+B,KAAKA,MAS5E7rB,MAAO,WAEHroB,KAAK27D,QAAS,EACd37D,KAAK47D,MAAO,EACZ57D,KAAKg8D,SAAWh8D,KAAKmyC,KAAK+B,KAAKA,KAC/Bl0C,KAAKi8D,SAAW,EAChBj8D,KAAKm8D,QAAU,GASnBjwD,QAAS,WAELlM,KAAK24D,OAAOhe,UACZ36C,KAAK44D,KAAKje,UACV36C,KAAK0tE,QAAQ/yB,UAEb36C,KAAK8lC,IAAM,KACX9lC,KAAKmyC,KAAO,OAMpB/P,EAAOsyC,cAAc7wE,UAAUsB,YAAci9B,EAAOsyC,cAepDtyC,EAAO2yC,aAAe,SAAUjhD,GAK5B9zB,KAAK8zB,OAASA,EAKd9zB,KAAKmyC,KAAOre,EAAOqe,KAMnBnyC,KAAK42D,SAAU,EAMf52D,KAAKmqE,SAAU,EASfnqE,KAAKuqE,WAAa,EAMlBvqE,KAAKg1E,eAAgB,EAMrBh1E,KAAKi1E,gBAAiB,EAMtBj1E,KAAK8pE,WAAY,EAMjB9pE,KAAKk1E,qBAAsB,EAM3Bl1E,KAAKm1E,mBAAoB,EAMzBn1E,KAAK2hD,YAAa,EAMlB3hD,KAAKo1E,WAAa,KAMlBp1E,KAAKq1E,YAAa,EAMlBr1E,KAAKs1E,eAAgB,EAMrBt1E,KAAKu1E,MAAQ,EAMbv1E,KAAKw1E,MAAQ,EAMbx1E,KAAKy1E,YAAc,EAMnBz1E,KAAK01E,YAAc,EASnB11E,KAAK21E,kBAAmB,EASxB31E,KAAK41E,mBAAoB,EAMzB51E,KAAK61E,kBAAoB,IAMzB71E,KAAK81E,WAAY,EAMjB91E,KAAK+1E,WAAa,KAMlB/1E,KAAKg2E,aAAe,KAQpBh2E,KAAKi2E,qBAAsB,EAK3Bj2E,KAAKk2E,YAAa,EAMlBl2E,KAAKm2E,YAAa,EAMlBn2E,KAAKo2E,aAAc,EAMnBp2E,KAAKq2E,WAAa,GAAIj0C,GAAOn+B,MAM7BjE,KAAKs2E,gBAELt2E,KAAKs2E,aAAahyE,MACd4B,GAAI,EACJ3B,EAAG,EACHC,EAAG,EACHm3D,QAAQ,EACRC,MAAM,EACN2a,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACT1a,SAAU,EACVE,OAAQ,EACRya,aAAc,EACd7M,WAAW,KAKnB1nC,EAAO2yC,aAAalxE,WAShBuL,MAAO,SAAUqqC,EAAUu7B,GAMvB,GAJAv7B,EAAWA,GAAY,EACM,mBAAlBu7B,KAAiCA,GAAgB,GAGxDh1E,KAAK42D,WAAY,EACrB,CAEI52D,KAAKmyC,KAAK2B,MAAMklB,iBAAiBhwB,IAAIhpC,MACrCA,KAAKg1E,cAAgBA,EACrBh1E,KAAKuqE,WAAa9wB,CAElB,KAAK,GAAIt1C,GAAI,EAAO,GAAJA,EAAQA,IAEpBnE,KAAKs2E,aAAanyE,IACd+B,GAAI/B,EACJI,EAAG,EACHC,EAAG,EACHm3D,QAAQ,EACRC,MAAM,EACN2a,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACT1a,SAAU,EACVE,OAAQ,EACRya,aAAc,EACd7M,WAAW,EAInB9pE,MAAKo1E,WAAa,GAAIhzC,GAAOn+B,MAC7BjE,KAAK42D,SAAU,EACf52D,KAAKo2E,aAAc,EAGfp2E,KAAK8zB,OAAOitB,QAA6C,OAAnC/gD,KAAK8zB,OAAOitB,OAAO61B,cAEzC52E,KAAK8zB,OAAOitB,OAAO61B,YAAc,GAAIx0C,GAAOuW,OAC5C34C,KAAK8zB,OAAOitB,OAAO81B,WAAa,GAAIz0C,GAAOuW,OAC3C34C,KAAK8zB,OAAOitB,OAAO+1B,YAAc,GAAI10C,GAAOuW,OAC5C34C,KAAK8zB,OAAOitB,OAAOg2B,UAAY,GAAI30C,GAAOuW,OAC1C34C,KAAK8zB,OAAOitB,OAAOi2B,YAAc,GAAI50C,GAAOuW,OAC5C34C,KAAK8zB,OAAOitB,OAAOk2B,WAAa,GAAI70C,GAAOuW,QASnD,MALA34C,MAAK8zB,OAAOitB,OAAOC,eAAehY,IAAIhpC,KAAKk3E,aAAcl3E,MACzDA,KAAK8zB,OAAOitB,OAAOmB,mBAAmBlZ,IAAIhpC,KAAKm3E,iBAAkBn3E,MAEjEA,KAAKo3E,SAAU,EAERp3E,KAAK8zB,QAUhBojD,aAAc,WAENl3E,KAAKm2E,YAKLn2E,KAAKo2E,cAAgBp2E,KAAK42D,SAE1B52D,KAAKoP,SAWb+nE,iBAAkB,WAEVn3E,KAAKm2E,aAKLn2E,KAAK42D,SAEL52D,KAAKo2E,aAAc,EACnBp2E,KAAKgP,QAILhP,KAAKo2E,aAAc,IAS3B/tD,MAAO,WAEHroB,KAAK42D,SAAU,EACf52D,KAAKo3E,SAAU,CAEf,KAAK,GAAIjzE,GAAI,EAAO,GAAJA,EAAQA,IAEpBnE,KAAKs2E,aAAanyE,IACd+B,GAAI/B,EACJI,EAAG,EACHC,EAAG,EACHm3D,QAAQ,EACRC,MAAM,EACN2a,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACT1a,SAAU,EACVE,OAAQ,EACRya,aAAc,EACd7M,WAAW,IASvB96D,KAAM,WAGEhP,KAAK42D,WAAY,IAOjB52D,KAAK42D,SAAU,EACf52D,KAAKmyC,KAAK2B,MAAMklB,iBAAiBniB,OAAO72C,QAShDkM,QAAS,WAEDlM,KAAK8zB,SAED9zB,KAAKi1E,iBAELj1E,KAAKmyC,KAAK9+B,OAAOD,MAAM+sC,OAAS,UAChCngD,KAAKi1E,gBAAiB,GAG1Bj1E,KAAK42D,SAAU,EAEf52D,KAAKmyC,KAAK2B,MAAMklB,iBAAiBniB,OAAO72C,MAExCA,KAAKs2E,aAAajyE,OAAS,EAC3BrE,KAAK+1E,WAAa,KAClB/1E,KAAKg2E,aAAe,KACpBh2E,KAAK8zB,OAAS,OAgBtBs2C,cAAe,SAAUiN,EAAWC,EAAiBC,GAIjD,MAFmC,mBAAxBA,KAAuCA,GAAsB,GAE5C,IAAxBv3E,KAAK8zB,OAAO1tB,MAAM7B,GAAmC,IAAxBvE,KAAK8zB,OAAO1tB,MAAM5B,GAAWxE,KAAKuqE,WAAavqE,KAAKmyC,KAAK2B,MAAMilB,eAErF,GAINwe,IAAwBv3E,KAAK41E,oBAAqB51E,KAAK21E,oBAKxD31E,KAAKuqE,WAAa8M,GAAcr3E,KAAKuqE,aAAe8M,GAAar3E,KAAK8zB,OAAO0sB,OAAO,GAAK82B,IAElF,GALA,GAkBfE,eAAgB,WAEZ,MAAQx3E,MAAK41E,mBAAqB51E,KAAK21E,kBAY3C8B,SAAU,SAAUp7B,GAIhB,MAFAA,GAAUA,GAAW,EAEdr8C,KAAKs2E,aAAaj6B,GAAS93C,GAYtCmzE,SAAU,SAAUr7B,GAIhB,MAFAA,GAAUA,GAAW,EAEdr8C,KAAKs2E,aAAaj6B,GAAS73C,GAWtCmzE,YAAa,SAAUt7B,GAInB,MAFAA,GAAUA,GAAW,EAEdr8C,KAAKs2E,aAAaj6B,GAASsf,QAWtCic,UAAW,SAAUv7B,GAIjB,MAFAA,GAAUA,GAAW,EAEdr8C,KAAKs2E,aAAaj6B,GAASuf,MAWtCic,gBAAiB,SAAUx7B,GAIvB,MAFAA,GAAUA,GAAW,EAEdr8C,KAAKs2E,aAAaj6B,GAAS2f,UAUtC8b,cAAe,SAAUz7B,GAIrB,MAFAA,GAAUA,GAAW,EAEdr8C,KAAKs2E,aAAaj6B,GAAS6f,QAWtC6b,YAAa,SAAUprE,GAEnB,GAAI3M,KAAK42D,QACT,CACI,GAAqB,mBAAVjqD,GAYP,MAAO3M,MAAKs2E,aAAa3pE,GAAO4pE,MAVhC,KAAK,GAAIpyE,GAAI,EAAO,GAAJA,EAAQA,IAEpB,GAAInE,KAAKs2E,aAAanyE,GAAGoyE,OAErB,OAAO,EAUvB,OAAO,GAUXyB,WAAY,SAAUrrE,GAElB,GAAI3M,KAAK42D,QACT,CACI,GAAqB,mBAAVjqD,GAYP,MAAO3M,MAAKs2E,aAAa3pE,GAAO6pE,KAVhC,KAAK,GAAIryE,GAAI,EAAO,GAAJA,EAAQA,IAEpB,GAAInE,KAAKs2E,aAAanyE,GAAGqyE,MAErB,OAAO,EAUvB,OAAO,GAUXyB,gBAAiB,SAAU57B,GAIvB,MAFAA,GAAUA,GAAW,EAEdr8C,KAAKs2E,aAAaj6B,GAASo6B,UAUtCyB,eAAgB,SAAU77B,GAItB,MAFAA,GAAUA,GAAW,EAEdr8C,KAAKs2E,aAAaj6B,GAASq6B,SAUtCyB,eAAgB,SAAU97B,GAItB,MAFAA,GAAUA,GAAW,EAEdr8C,KAAKs2E,aAAaj6B,GAASytB,WAatCO,iBAAkB,SAAUhuB,EAAS+7B,GAEjC,MAAK/7B,GAAQsf,QAAW37D,KAAK42D,SAAY52D,KAAK8zB,QAAW9zB,KAAK8zB,OAAOzrB,QAAWrI,KAAK8zB,OAAO7rB,SAAYjI,KAAK8zB,OAAOzrB,OAAOJ,SAMvHjI,KAAKmyC,KAAK2B,MAAMqnB,QAAQn7D,KAAK8zB,OAAQuoB,EAASr8C,KAAKq2E,aAE3B,mBAAb+B,KAA4BA,GAAW,IAE7CA,GAAYp4E,KAAK41E,kBAEX51E,KAAKq4E,WAAWr4E,KAAKq2E,WAAW9xE,EAAGvE,KAAKq2E,WAAW7xE,IAInD,IAdJ,GA+Bf8lE,iBAAkB,SAAUjuB,EAAS+7B,GAEjC,MAAKp4E,MAAK42D,SAAY52D,KAAK8zB,QAAW9zB,KAAK8zB,OAAOzrB,QAAWrI,KAAK8zB,OAAO7rB,SAAYjI,KAAK8zB,OAAOzrB,OAAOJ,SAMpGjI,KAAKmyC,KAAK2B,MAAMqnB,QAAQn7D,KAAK8zB,OAAQuoB,EAASr8C,KAAKq2E,aAE3B,mBAAb+B,KAA4BA,GAAW,IAE7CA,GAAYp4E,KAAK21E,iBAEX31E,KAAKq4E,WAAWr4E,KAAKq2E,WAAW9xE,EAAGvE,KAAKq2E,WAAW7xE,IAInD,IAdJ,GA+Bf6zE,WAAY,SAAU9zE,EAAGC,EAAG63C,GAGxB,GAAIr8C,KAAK8zB,OAAOjoB,QAAQ6D,YAAYmC,OACpC,CACI,GAAU,OAANtN,GAAoB,OAANC,EAClB,CAEIxE,KAAKmyC,KAAK2B,MAAMonB,iBAAiBl7D,KAAK8zB,OAAQuoB,EAASr8C,KAAKq2E,WAE5D,IAAI9xE,GAAIvE,KAAKq2E,WAAW9xE,EACpBC,EAAIxE,KAAKq2E,WAAW7xE,EAgB5B,GAb6B,IAAzBxE,KAAK8zB,OAAO7nB,OAAO1H,IAEnBA,IAAMvE,KAAK8zB,OAAOjoB,QAAQkE,MAAM5I,MAAQnH,KAAK8zB,OAAO7nB,OAAO1H,GAGlC,IAAzBvE,KAAK8zB,OAAO7nB,OAAOzH,IAEnBA,IAAMxE,KAAK8zB,OAAOjoB,QAAQkE,MAAM3I,OAASpH,KAAK8zB,OAAO7nB,OAAOzH,GAGhED,GAAKvE,KAAK8zB,OAAOjoB,QAAQkE,MAAMxL,EAC/BC,GAAKxE,KAAK8zB,OAAOjoB,QAAQkE,MAAMvL,EAE3BxE,KAAK8zB,OAAOjoB,QAAQ0F,OAEpBhN,GAAKvE,KAAK8zB,OAAOjoB,QAAQ0F,KAAKhN,EAC9BC,GAAKxE,KAAK8zB,OAAOjoB,QAAQ0F,KAAK/M,EAG1BD,EAAIvE,KAAK8zB,OAAOjoB,QAAQ+E,KAAKrM,GAAKA,EAAIvE,KAAK8zB,OAAOjoB,QAAQ+E,KAAKs1B,OAAS1hC,EAAIxE,KAAK8zB,OAAOjoB,QAAQ+E,KAAKpM,GAAKA,EAAIxE,KAAK8zB,OAAOjoB,QAAQ+E,KAAKq3B,QAIvI,MAFAjoC,MAAKs4E,IAAM/zE,EACXvE,KAAKu4E,IAAM/zE,GACJ,CAIfxE,MAAKs4E,IAAM/zE,EACXvE,KAAKu4E,IAAM/zE,EAEXxE,KAAKmyC,KAAK2B,MAAMyiB,WAAWjhD,UAAU,EAAG,EAAG,EAAG,GAC9CtV,KAAKmyC,KAAK2B,MAAMyiB,WAAW3kD,UAAU5R,KAAK8zB,OAAOjoB,QAAQ6D,YAAYmC,OAAQtN,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAElG,IAAIsW,GAAM9a,KAAKmyC,KAAK2B,MAAMyiB,WAAW5/C,aAAa,EAAG,EAAG,EAAG,EAE3D,IAAImE,EAAIlE,KAAK,IAAM5W,KAAK61E,kBAEpB,OAAO,EAIf,OAAO,GAWXr8D,OAAQ,SAAU6iC,GAEd,MAAoB,QAAhBr8C,KAAK8zB,QAA0CrmB,SAAvBzN,KAAK8zB,OAAOzrB,OAMnCrI,KAAK42D,SAAY52D,KAAK8zB,OAAO7rB,SAAYjI,KAAK8zB,OAAOzrB,OAAOJ,QAM7DjI,KAAK81E,WAAa91E,KAAKw4E,oBAAsBn8B,EAAQn2C,GAE9ClG,KAAKy4E,WAAWp8B,GAElBr8C,KAAKs2E,aAAaj6B,EAAQn2C,IAAIqwE,OAE/Bv2E,KAAKsqE,iBAAiBjuB,IAEtBr8C,KAAKs2E,aAAaj6B,EAAQn2C,IAAI3B,EAAI83C,EAAQ93C,EAAIvE,KAAK8zB,OAAOvvB,EAC1DvE,KAAKs2E,aAAaj6B,EAAQn2C,IAAI1B,EAAI63C,EAAQ73C,EAAIxE,KAAK8zB,OAAOtvB,GACnD,IAIPxE,KAAKwqE,mBAAmBnuB,IACjB,GAXV,QARDr8C,KAAKwqE,mBAAmBnuB,IACjB,GATX,QAuCJouB,oBAAqB,SAAUpuB,GAEP,OAAhBr8C,KAAK8zB,SAML9zB,KAAKs2E,aAAaj6B,EAAQn2C,IAAIqwE,UAAW,GAASl6B,EAAQ7yC,SAE1DxJ,KAAKs2E,aAAaj6B,EAAQn2C,IAAIqwE,QAAS,EACvCv2E,KAAKs2E,aAAaj6B,EAAQn2C,IAAIswE,OAAQ,EACtCx2E,KAAKs2E,aAAaj6B,EAAQn2C,IAAIuwE,SAAWz2E,KAAKmyC,KAAK+B,KAAKA,KACxDl0C,KAAKs2E,aAAaj6B,EAAQn2C,IAAI3B,EAAI83C,EAAQ93C,EAAIvE,KAAK8zB,OAAOvvB,EAC1DvE,KAAKs2E,aAAaj6B,EAAQn2C,IAAI1B,EAAI63C,EAAQ73C,EAAIxE,KAAK8zB,OAAOtvB,EAEtDxE,KAAKg1E,eAAiBh1E,KAAKs2E,aAAaj6B,EAAQn2C,IAAI4jE,aAAc,IAElE9pE,KAAKmyC,KAAK9+B,OAAOD,MAAM+sC,OAAS,UAChCngD,KAAKi1E,gBAAiB,GAGtBj1E,KAAK8zB,QAAU9zB,KAAK8zB,OAAOitB,QAE3B/gD,KAAK8zB,OAAOitB,OAAO61B,YAAY99B,SAAS94C,KAAK8zB,OAAQuoB,KAajEmuB,mBAAoB,SAAUnuB,GAEN,OAAhBr8C,KAAK8zB,SAMT9zB,KAAKs2E,aAAaj6B,EAAQn2C,IAAIqwE,QAAS,EACvCv2E,KAAKs2E,aAAaj6B,EAAQn2C,IAAIswE,OAAQ,EACtCx2E,KAAKs2E,aAAaj6B,EAAQn2C,IAAIwwE,QAAU12E,KAAKmyC,KAAK+B,KAAKA,KAEnDl0C,KAAKg1E,eAAiBh1E,KAAKs2E,aAAaj6B,EAAQn2C,IAAI4jE,aAAc,IAElE9pE,KAAKmyC,KAAK9+B,OAAOD,MAAM+sC,OAAS,UAChCngD,KAAKi1E,gBAAiB,GAGtBj1E,KAAK8zB,QAAU9zB,KAAK8zB,OAAOitB,QAE3B/gD,KAAK8zB,OAAOitB,OAAO81B,WAAW/9B,SAAS94C,KAAK8zB,OAAQuoB,KAW5DgtB,gBAAiB,SAAUhtB,GAEvB,GAAoB,OAAhBr8C,KAAK8zB,OAAT,CAMA,GAAI9zB,KAAKs2E,aAAaj6B,EAAQn2C,IAAIy1D,UAAW,GAAS37D,KAAKs2E,aAAaj6B,EAAQn2C,IAAIqwE,UAAW,EAC/F,CACI,GAAIv2E,KAAK41E,oBAAsB51E,KAAKq4E,WAAW,KAAM,KAAMh8B,GAEvD,MAGJr8C,MAAKs2E,aAAaj6B,EAAQn2C,IAAIy1D,QAAS,EACvC37D,KAAKs2E,aAAaj6B,EAAQn2C,IAAI01D,MAAO,EACrC57D,KAAKs2E,aAAaj6B,EAAQn2C,IAAI81D,SAAWh8D,KAAKmyC,KAAK+B,KAAKA,KAEpDl0C,KAAK8zB,QAAU9zB,KAAK8zB,OAAOitB,QAE3B/gD,KAAK8zB,OAAOitB,OAAO+1B,YAAYh+B,SAAS94C,KAAK8zB,OAAQuoB,GAIzDA,EAAQ7yC,OAAQ,EAGZxJ,KAAK81E,WAAa91E,KAAK8pE,aAAc,GAErC9pE,KAAK04E,UAAUr8B,GAGfr8C,KAAK2hD,YAEL3hD,KAAK8zB,OAAO6tB,aAKpB,MAAO3hD,MAAKi2E,sBAUhBnL,iBAAkB,SAAUzuB,GAEJ,OAAhBr8C,KAAK8zB,QAOL9zB,KAAKs2E,aAAaj6B,EAAQn2C,IAAIy1D,QAAUtf,EAAQuf,OAEhD57D,KAAKs2E,aAAaj6B,EAAQn2C,IAAIy1D,QAAS,EACvC37D,KAAKs2E,aAAaj6B,EAAQn2C,IAAI01D,MAAO,EACrC57D,KAAKs2E,aAAaj6B,EAAQn2C,IAAIg2D,OAASl8D,KAAKmyC,KAAK+B,KAAKA,KACtDl0C,KAAKs2E,aAAaj6B,EAAQn2C,IAAIywE,aAAe32E,KAAKs2E,aAAaj6B,EAAQn2C,IAAIg2D,OAASl8D,KAAKs2E,aAAaj6B,EAAQn2C,IAAI81D,SAG9Gh8D,KAAKsqE,iBAAiBjuB,GAGlBr8C,KAAK8zB,QAAU9zB,KAAK8zB,OAAOitB,QAE3B/gD,KAAK8zB,OAAOitB,OAAOg2B,UAAUj+B,SAAS94C,KAAK8zB,OAAQuoB,GAAS,IAM5Dr8C,KAAK8zB,QAAU9zB,KAAK8zB,OAAOitB,QAE3B/gD,KAAK8zB,OAAOitB,OAAOg2B,UAAUj+B,SAAS94C,KAAK8zB,OAAQuoB,GAAS,GAI5Dr8C,KAAKg1E,gBAELh1E,KAAKmyC,KAAK9+B,OAAOD,MAAM+sC,OAAS,UAChCngD,KAAKi1E,gBAAiB,IAK9B54B,EAAQ7yC,OAAQ,EAGZxJ,KAAK81E,WAAa91E,KAAK8pE,WAAa9pE,KAAKw4E,oBAAsBn8B,EAAQn2C,IAEvElG,KAAK24E,SAASt8B,KAY1Bo8B,WAAY,SAAUp8B,GAElB,GAAIA,EAAQuf,KAGR,MADA57D,MAAK24E,SAASt8B,IACP,CAGX,IAAIt9B,GAAK/e,KAAK44E,eAAev8B,EAAQ93C,GAAKvE,KAAK64E,WAAWt0E,EAAIvE,KAAK84E,WAAWv0E,EAC1Eya,EAAKhf,KAAK+4E,eAAe18B,EAAQ73C,GAAKxE,KAAK64E,WAAWr0E,EAAIxE,KAAK84E,WAAWt0E,CA2D9E,OAzDIxE,MAAK8zB,OAAOklD,eAERh5E,KAAKk1E,sBAELl1E,KAAK8zB,OAAOssB,aAAa77C,EAAIwa,GAG7B/e,KAAKm1E,oBAELn1E,KAAK8zB,OAAOssB,aAAa57C,EAAIwa,GAG7Bhf,KAAK+1E,YAEL/1E,KAAKi5E,kBAGLj5E,KAAKg2E,cAELh2E,KAAKk5E,oBAGLl5E,KAAKq1E,aAELr1E,KAAK8zB,OAAOssB,aAAa77C,EAAIrC,KAAKwlC,OAAO1nC,KAAK8zB,OAAOssB,aAAa77C,EAAKvE,KAAKy1E,YAAcz1E,KAAKu1E,OAAUv1E,KAAKu1E,OAASv1E,KAAKu1E,MAASv1E,KAAKy1E,YAAcz1E,KAAKu1E,MAC7Jv1E,KAAK8zB,OAAOssB,aAAa57C,EAAItC,KAAKwlC,OAAO1nC,KAAK8zB,OAAOssB,aAAa57C,EAAKxE,KAAK01E,YAAc11E,KAAKw1E,OAAUx1E,KAAKw1E,OAASx1E,KAAKw1E,MAASx1E,KAAK01E,YAAc11E,KAAKw1E,SAK7Jx1E,KAAKk1E,sBAELl1E,KAAK8zB,OAAOvvB,EAAIwa,GAGhB/e,KAAKm1E,oBAELn1E,KAAK8zB,OAAOtvB,EAAIwa,GAGhBhf,KAAK+1E,YAEL/1E,KAAKi5E,kBAGLj5E,KAAKg2E,cAELh2E,KAAKk5E,oBAGLl5E,KAAKq1E,aAELr1E,KAAK8zB,OAAOvvB,EAAIrC,KAAKwlC,OAAO1nC,KAAK8zB,OAAOvvB,EAAKvE,KAAKy1E,YAAcz1E,KAAKu1E,OAAUv1E,KAAKu1E,OAASv1E,KAAKu1E,MAASv1E,KAAKy1E,YAAcz1E,KAAKu1E,MACnIv1E,KAAK8zB,OAAOtvB,EAAItC,KAAKwlC,OAAO1nC,KAAK8zB,OAAOtvB,EAAKxE,KAAK01E,YAAc11E,KAAKw1E,OAAUx1E,KAAKw1E,OAASx1E,KAAKw1E,MAASx1E,KAAK01E,YAAc11E,KAAKw1E,SAIpI,GAWX2D,SAAU,SAAU98B,EAAS+8B,GAKzB,MAHA/8B,GAAUA,GAAW,EACrB+8B,EAAQA,GAAS,IAETp5E,KAAKs2E,aAAaj6B,GAASk6B,QAAUv2E,KAAKq5E,aAAah9B,GAAW+8B,GAW9EE,QAAS,SAAUj9B,EAAS+8B,GAKxB,MAHA/8B,GAAUA,GAAW,EACrB+8B,EAAQA,GAAS,IAETp5E,KAAKs2E,aAAaj6B,GAASm6B,OAAUx2E,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKs2E,aAAaj6B,GAASq6B,QAAU0C,GAW5G3c,YAAa,SAAUpgB,EAAS+8B,GAK5B,MAHA/8B,GAAUA,GAAW,EACrB+8B,EAAQA,GAAS,IAETp5E,KAAKs2E,aAAaj6B,GAASsf,QAAU37D,KAAK22E,aAAat6B,GAAW+8B,GAW9E1c,aAAc,SAAUrgB,EAAS+8B,GAK7B,MAHA/8B,GAAUA,GAAW,EACrB+8B,EAAQA,GAAS,IAETp5E,KAAKs2E,aAAaj6B,GAASuf,MAAS57D,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKs2E,aAAaj6B,GAAS6f,OAASkd,GAU1GC,aAAc,SAAUh9B,GAIpB,MAFAA,GAAUA,GAAW,EAEjBr8C,KAAKs2E,aAAaj6B,GAASk6B,OAEpBv2E,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKs2E,aAAaj6B,GAASo6B,SAGrD,IAUXE,aAAc,SAAUt6B,GAIpB,MAFAA,GAAUA,GAAW,EAEjBr8C,KAAKs2E,aAAaj6B,GAASsf,OAEpB37D,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKs2E,aAAaj6B,GAAS2f,SAGrD,IAcXud,WAAY,SAAUC,EAAY73B,EAAY83B,EAAcC,EAAgB3D,EAAYC,GAE1D,mBAAfwD,KAA8BA,GAAa,GAC5B,mBAAf73B,KAA8BA,GAAa,GAC1B,mBAAjB83B,KAAgCA,GAAe,GAC5B,mBAAnBC,KAAkCA,EAAiB,KACpC,mBAAf3D,KAA8BA,EAAa,MAC1B,mBAAjBC,KAAgCA,EAAe,MAE1Dh2E,KAAK64E,WAAa,GAAIz2C,GAAOn+B,MAC7BjE,KAAK81E,WAAY,EACjB91E,KAAK2hD,WAAaA,EAClB3hD,KAAK84E,WAAa,GAAI12C,GAAOn+B,MAC7BjE,KAAK25E,eAAiBH,EAEtBx5E,KAAK41E,kBAAoB6D,EACzBz5E,KAAK61E,kBAAoB6D,EAErB3D,IAEA/1E,KAAK+1E,WAAaA,GAGlBC,IAEAh2E,KAAKg2E,aAAeA,IAS5B4D,YAAa,WAET,GAAI55E,KAAKs2E,aAEL,IAAK,GAAInyE,GAAI,EAAO,GAAJA,EAAQA,IAEpBnE,KAAKs2E,aAAanyE,GAAG2lE,WAAY,CAIzC9pE,MAAK81E,WAAY,EACjB91E,KAAK8pE,WAAY,EACjB9pE,KAAKw4E,kBAAoB,IAS7BE,UAAW,SAAUr8B,GAMjB,GAJAr8C,KAAK8pE,WAAY,EACjB9pE,KAAKw4E,kBAAoBn8B,EAAQn2C,GACjClG,KAAKs2E,aAAaj6B,EAAQn2C,IAAI4jE,WAAY,EAEtC9pE,KAAK8zB,OAAOklD,cAERh5E,KAAK25E,gBAEL35E,KAAK8zB,OAAOqX,SAASkR,EAAQ93C,EAAG83C,EAAQ73C,GACxCxE,KAAK64E,WAAWxxC,MAAMrnC,KAAK8zB,OAAOssB,aAAa77C,EAAI83C,EAAQ93C,EAAGvE,KAAK8zB,OAAOssB,aAAa57C,EAAI63C,EAAQ73C,IAInGxE,KAAK64E,WAAWxxC,MAAMrnC,KAAK8zB,OAAOssB,aAAa77C,EAAI83C,EAAQ93C,EAAGvE,KAAK8zB,OAAOssB,aAAa57C,EAAI63C,EAAQ73C,OAI3G,CACI,GAAIxE,KAAK25E,eACT,CACI,GAAI9uE,GAAS7K,KAAK8zB,OAAOvpB,WAEzBvK,MAAK8zB,OAAOvvB,EAAIvE,KAAK44E,eAAev8B,EAAQ93C,IAAMvE,KAAK8zB,OAAOvvB,EAAIsG,EAAOqxB,SACzEl8B,KAAK8zB,OAAOtvB,EAAIxE,KAAK+4E,eAAe18B,EAAQ73C,IAAMxE,KAAK8zB,OAAOtvB,EAAIqG,EAAOsxB,SAG7En8B,KAAK64E,WAAWxxC,MAAMrnC,KAAK8zB,OAAOvvB,EAAIvE,KAAK44E,eAAev8B,EAAQ93C,GAAIvE,KAAK8zB,OAAOtvB,EAAIxE,KAAK+4E,eAAe18B,EAAQ73C,IAGtHxE,KAAKy4E,WAAWp8B,GAEZr8C,KAAK2hD,aAEL3hD,KAAKm2E,YAAa,EAClBn2E,KAAK8zB,OAAO6tB,cAGhB3hD,KAAK8zB,OAAOitB,OAAOi2B,YAAYl+B,SAAS94C,KAAK8zB,OAAQuoB,IASzDu8B,eAAgB,SAAUr0E,GAQtB,MANIvE,MAAKk2E,aAEL3xE,GAAKvE,KAAKmyC,KAAK/rC,MAAMyhD,KAAKjC,YAAYrhD,EACtCA,GAAKvE,KAAKmyC,KAAK/rC,MAAMyhD,KAAKxB,mBAAmB9hD,GAG1CA,GASXw0E,eAAgB,SAAUv0E,GAQtB,MANIxE,MAAKk2E,aAEL1xE,GAAKxE,KAAKmyC,KAAK/rC,MAAMyhD,KAAKjC,YAAYphD,EACtCA,GAAKxE,KAAKmyC,KAAK/rC,MAAMyhD,KAAKxB,mBAAmB7hD,GAG1CA,GASXm0E,SAAU,SAAUt8B,GAEhBr8C,KAAK8pE,WAAY,EACjB9pE,KAAKw4E,kBAAoB,GACzBx4E,KAAKs2E,aAAaj6B,EAAQn2C,IAAI4jE,WAAY,EAC1C9pE,KAAKm2E,YAAa,EAEdn2E,KAAKs1E,gBAEDt1E,KAAK8zB,OAAOklD,eAEZh5E,KAAK8zB,OAAOssB,aAAa77C,EAAIrC,KAAKwlC,OAAO1nC,KAAK8zB,OAAOssB,aAAa77C,EAAKvE,KAAKy1E,YAAcz1E,KAAKu1E,OAAUv1E,KAAKu1E,OAASv1E,KAAKu1E,MAASv1E,KAAKy1E,YAAcz1E,KAAKu1E,MAC7Jv1E,KAAK8zB,OAAOssB,aAAa57C,EAAItC,KAAKwlC,OAAO1nC,KAAK8zB,OAAOssB,aAAa57C,EAAKxE,KAAK01E,YAAc11E,KAAKw1E,OAAUx1E,KAAKw1E,OAASx1E,KAAKw1E,MAASx1E,KAAK01E,YAAc11E,KAAKw1E,QAI7Jx1E,KAAK8zB,OAAOvvB,EAAIrC,KAAKwlC,OAAO1nC,KAAK8zB,OAAOvvB,EAAKvE,KAAKy1E,YAAcz1E,KAAKu1E,OAAUv1E,KAAKu1E,OAASv1E,KAAKu1E,MAASv1E,KAAKy1E,YAAcz1E,KAAKu1E,MACnIv1E,KAAK8zB,OAAOtvB,EAAItC,KAAKwlC,OAAO1nC,KAAK8zB,OAAOtvB,EAAKxE,KAAK01E,YAAc11E,KAAKw1E,OAAUx1E,KAAKw1E,OAASx1E,KAAKw1E,MAASx1E,KAAK01E,YAAc11E,KAAKw1E,QAI3Ix1E,KAAK8zB,OAAOitB,OAAOk2B,WAAWn+B,SAAS94C,KAAK8zB,OAAQuoB,GAEhDr8C,KAAKsqE,iBAAiBjuB,MAAa,GAEnCr8C,KAAKwqE,mBAAmBnuB,IAWhCw9B,YAAa,SAAUC,EAAiBC,GAEL,mBAApBD,KAAmCA,GAAkB,GACnC,mBAAlBC,KAAiCA,GAAgB,GAE5D/5E,KAAKk1E,oBAAsB4E,EAC3B95E,KAAKm1E,kBAAoB4E,GAe7BC,WAAY,SAAUzE,EAAOC,EAAOyE,EAAQC,EAAWzE,EAAaC,GAE1C,mBAAXuE,KAA0BA,GAAS,GACrB,mBAAdC,KAA6BA,GAAY,GACzB,mBAAhBzE,KAA+BA,EAAc,GAC7B,mBAAhBC,KAA+BA,EAAc,GAExD11E,KAAKu1E,MAAQA,EACbv1E,KAAKw1E,MAAQA,EACbx1E,KAAKy1E,YAAcA,EACnBz1E,KAAK01E,YAAcA,EACnB11E,KAAKq1E,WAAa4E,EAClBj6E,KAAKs1E,cAAgB4E,GAQzBC,YAAa,WAETn6E,KAAKq1E,YAAa,EAClBr1E,KAAKs1E,eAAgB,GAQzB2D,gBAAiB,WAETj5E,KAAK8zB,OAAOklD,eAERh5E,KAAK8zB,OAAOssB,aAAa77C,EAAIvE,KAAK+1E,WAAW5vC,KAE7CnmC,KAAK8zB,OAAOssB,aAAa77C,EAAIvE,KAAK+1E,WAAW5vC,KAEvCnmC,KAAK8zB,OAAOssB,aAAa77C,EAAIvE,KAAK8zB,OAAO3sB,MAASnH,KAAK+1E,WAAW7vC,QAExElmC,KAAK8zB,OAAOssB,aAAa77C,EAAIvE,KAAK+1E,WAAW7vC,MAAQlmC,KAAK8zB,OAAO3sB,OAGjEnH,KAAK8zB,OAAOssB,aAAa57C,EAAIxE,KAAK+1E,WAAW/tC,IAE7ChoC,KAAK8zB,OAAOssB,aAAa57C,EAAIxE,KAAK+1E,WAAW/tC,IAEvChoC,KAAK8zB,OAAOssB,aAAa57C,EAAIxE,KAAK8zB,OAAO1sB,OAAUpH,KAAK+1E,WAAW9tC,SAEzEjoC,KAAK8zB,OAAOssB,aAAa57C,EAAIxE,KAAK+1E,WAAW9tC,OAASjoC,KAAK8zB,OAAO1sB,UAKlEpH,KAAK8zB,OAAOvvB,EAAIvE,KAAK+1E,WAAW5vC,KAEhCnmC,KAAK8zB,OAAOvvB,EAAIvE,KAAK+1E,WAAWxxE,EAE1BvE,KAAK8zB,OAAOvvB,EAAIvE,KAAK8zB,OAAO3sB,MAASnH,KAAK+1E,WAAW7vC,QAE3DlmC,KAAK8zB,OAAOvvB,EAAIvE,KAAK+1E,WAAW7vC,MAAQlmC,KAAK8zB,OAAO3sB,OAGpDnH,KAAK8zB,OAAOtvB,EAAIxE,KAAK+1E,WAAW/tC,IAEhChoC,KAAK8zB,OAAOtvB,EAAIxE,KAAK+1E,WAAW/tC,IAE1BhoC,KAAK8zB,OAAOtvB,EAAIxE,KAAK8zB,OAAO1sB,OAAUpH,KAAK+1E,WAAW9tC,SAE5DjoC,KAAK8zB,OAAOtvB,EAAIxE,KAAK+1E,WAAW9tC,OAASjoC,KAAK8zB,OAAO1sB,UAUjE8xE,kBAAmB,WAEXl5E,KAAK8zB,OAAOklD,eAAiBh5E,KAAKg2E,aAAagD,eAE3Ch5E,KAAK8zB,OAAOssB,aAAa77C,EAAIvE,KAAKg2E,aAAaoE,YAAY71E,EAE3DvE,KAAK8zB,OAAOssB,aAAa77C,EAAIvE,KAAKg2E,aAAaoE,YAAY71E,EAErDvE,KAAK8zB,OAAOssB,aAAa77C,EAAIvE,KAAK8zB,OAAO3sB,MAAUnH,KAAKg2E,aAAaoE,YAAY71E,EAAIvE,KAAKg2E,aAAa7uE,QAE7GnH,KAAK8zB,OAAOssB,aAAa77C,EAAKvE,KAAKg2E,aAAaoE,YAAY71E,EAAIvE,KAAKg2E,aAAa7uE,MAASnH,KAAK8zB,OAAO3sB,OAGvGnH,KAAK8zB,OAAOssB,aAAa57C,EAAIxE,KAAKg2E,aAAaoE,YAAY51E,EAE3DxE,KAAK8zB,OAAOssB,aAAa57C,EAAIxE,KAAKg2E,aAAaoE,YAAY51E,EAErDxE,KAAK8zB,OAAOssB,aAAa57C,EAAIxE,KAAK8zB,OAAO1sB,OAAWpH,KAAKg2E,aAAaoE,YAAY51E,EAAIxE,KAAKg2E,aAAa5uE,SAE9GpH,KAAK8zB,OAAOssB,aAAa57C,EAAKxE,KAAKg2E,aAAaoE,YAAY51E,EAAIxE,KAAKg2E,aAAa5uE,OAAUpH,KAAK8zB,OAAO1sB,UAKxGpH,KAAK8zB,OAAOvvB,EAAIvE,KAAKg2E,aAAazxE,EAElCvE,KAAK8zB,OAAOvvB,EAAIvE,KAAKg2E,aAAazxE,EAE5BvE,KAAK8zB,OAAOvvB,EAAIvE,KAAK8zB,OAAO3sB,MAAUnH,KAAKg2E,aAAazxE,EAAIvE,KAAKg2E,aAAa7uE,QAEpFnH,KAAK8zB,OAAOvvB,EAAKvE,KAAKg2E,aAAazxE,EAAIvE,KAAKg2E,aAAa7uE,MAASnH,KAAK8zB,OAAO3sB,OAG9EnH,KAAK8zB,OAAOtvB,EAAIxE,KAAKg2E,aAAaxxE,EAElCxE,KAAK8zB,OAAOtvB,EAAIxE,KAAKg2E,aAAaxxE,EAE5BxE,KAAK8zB,OAAOtvB,EAAIxE,KAAK8zB,OAAO1sB,OAAWpH,KAAKg2E,aAAaxxE,EAAIxE,KAAKg2E,aAAa5uE,SAErFpH,KAAK8zB,OAAOtvB,EAAKxE,KAAKg2E,aAAaxxE,EAAIxE,KAAKg2E,aAAa5uE,OAAUpH,KAAK8zB,OAAO1sB,WAQ/Fg7B,EAAO2yC,aAAalxE,UAAUsB,YAAci9B,EAAO2yC,aAuBnD3yC,EAAOi4C,OAAS,SAAUvmD,GAKtB9zB,KAAKqI,OAASyrB,EAKd9zB,KAAKghD,eAAiB,GAAI5e,GAAOuW,OAKjC34C,KAAKkiD,mBAAqB,GAAI9f,GAAOuW,OAKrC34C,KAAKs6E,mBAAqB,GAAIl4C,GAAOuW,OAKrC34C,KAAKsgD,UAAY,GAAIle,GAAOuW,OAK5B34C,KAAKu6E,SAAW,GAAIn4C,GAAOuW,OAK3B34C,KAAKw6E,UAAY,GAAIp4C,GAAOuW,OAK5B34C,KAAKy6E,cAAgB,GAAIr4C,GAAOuW,OAKhC34C,KAAK06E,cAAgB,GAAIt4C,GAAOuW,OAMhC34C,KAAK42E,YAAc,KAMnB52E,KAAK62E,WAAa,KAMlB72E,KAAK82E,YAAc,KAMnB92E,KAAK+2E,UAAY,KAMjB/2E,KAAKg3E,YAAc,KAMnBh3E,KAAKi3E,WAAa,KAMlBj3E,KAAK26E,iBAAmB,KAMxB36E,KAAK46E,oBAAsB,KAM3B56E,KAAK66E,gBAAkB,MAI3Bz4C,EAAOi4C,OAAOx2E,WAOVqI,QAAS,WAELlM,KAAKqI,OAAS,KAEdrI,KAAKsgD,UAAU3F,UACf36C,KAAKghD,eAAerG,UACpB36C,KAAKkiD,mBAAmBvH,UACxB36C,KAAKs6E,mBAAmB3/B,UACxB36C,KAAKu6E,SAAS5/B,UACd36C,KAAKw6E,UAAU7/B,UACf36C,KAAKy6E,cAAc9/B,UAEf36C,KAAK42E,cAEL52E,KAAK42E,YAAYj8B,UACjB36C,KAAK62E,WAAWl8B,UAChB36C,KAAK82E,YAAYn8B,UACjB36C,KAAK+2E,UAAUp8B,UACf36C,KAAKg3E,YAAYr8B,UACjB36C,KAAKi3E,WAAWt8B,WAGhB36C,KAAK26E,mBAEL36E,KAAK26E,iBAAiBhgC,UACtB36C,KAAK46E,oBAAoBjgC,UACzB36C,KAAK66E,gBAAgBlgC,aAOjCvY,EAAOi4C,OAAOx2E,UAAUsB,YAAci9B,EAAOi4C,OAe7Cj4C,EAAOsyB,kBAAoB,SAAUviB,GAKjCnyC,KAAKmyC,KAAOA,EAKZnyC,KAAKoyC,MAAQpyC,KAAKmyC,KAAKC,OAI3BhQ,EAAOsyB,kBAAkB7wD,WAQrBi3E,SAAU,SAAU3oB,GAEhB,MAAOnyD,MAAKoyC,MAAMpJ,IAAImpB,IAgB1BvyB,MAAO,SAAUr7B,EAAGC,EAAGme,EAAK5S,EAAOgrE,GAI/B,MAFqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKoyC,OAE1C2oC,EAAM/xC,IAAI,GAAI5G,GAAOjJ,MAAMn5B,KAAKmyC,KAAM5tC,EAAGC,EAAGme,EAAK5S,KAe5D+jB,OAAQ,SAAUvvB,EAAGC,EAAGme,EAAK5S,EAAOgrE,GAIhC,MAFqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKoyC,OAE1C2oC,EAAM1uE,OAAO9H,EAAGC,EAAGme,EAAK5S,IAWnCirE,MAAO,SAAUh/D,GAEb,MAAOhc,MAAKmyC,KAAKgC,OAAO9nC,OAAO2P,IAenC++D,MAAO,SAAU1yE,EAAQgV,EAAMsiC,EAAYC,EAAYC,GAEnD,MAAO,IAAIzd,GAAOsd,MAAM1/C,KAAKmyC,KAAM9pC,EAAQgV,EAAMsiC,EAAYC,EAAYC,IAgB7Eo7B,aAAc,SAAUp7B,EAAiBx3C,EAAQgV,EAAMsiC,GAEnD,MAAO,IAAIvd,GAAOsd,MAAM1/C,KAAKmyC,KAAM9pC,EAAQgV,EAAMsiC,GAAY,EAAME,IAevEjxC,YAAa,SAAUvG,EAAQgV,EAAMsiC,GAMjC,MAJsB,mBAAXt3C,KAA0BA,EAAS,MAC1B,mBAATgV,KAAwBA,EAAO,SAChB,mBAAfsiC,KAA8BA,GAAa,GAE/C,GAAIvd,GAAO/vB,YAAYrS,KAAKmyC,KAAM9pC,EAAQgV,EAAMsiC,IAc3Du7B,MAAO,SAAUv4D,EAAKspB,EAAQkvC,EAAMnN,GAEhC,MAAOhuE,MAAKmyC,KAAK8B,MAAMjL,IAAIrmB,EAAKspB,EAAQkvC,EAAMnN,IAclD/5B,MAAO,SAAUtxB,EAAKspB,EAAQkvC,EAAMnN,GAEhC,MAAOhuE,MAAKmyC,KAAK8B,MAAMjL,IAAIrmB,EAAKspB,EAAQkvC,EAAMnN,IAWlDoN,YAAa,SAAUz4D,GAEnB,MAAO3iB,MAAKmyC,KAAK8B,MAAMonC,UAAU14D,IAiBrC24D,WAAY,SAAU/2E,EAAGC,EAAG2C,EAAOC,EAAQub,EAAK5S,EAAOgrE,GAInD,MAFqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKoyC,OAE1C2oC,EAAM/xC,IAAI,GAAI5G,GAAOk5B,WAAWt7D,KAAKmyC,KAAM5tC,EAAGC,EAAG2C,EAAOC,EAAQub,EAAK5S,KAiBhFwrE,KAAM,SAAUh3E,EAAGC,EAAGme,EAAK5S,EAAOnM,EAAQm3E,GAItC,MAFqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKoyC,OAE1C2oC,EAAM/xC,IAAI,GAAI5G,GAAO/E,KAAKr9B,KAAKmyC,KAAM5tC,EAAGC,EAAGme,EAAK5S,EAAOnM,KAelEuP,KAAM,SAAU5O,EAAGC,EAAG2O,EAAMC,EAAO2nE,GAI/B,MAFqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKoyC,OAE1C2oC,EAAM/xC,IAAI,GAAI5G,GAAOlvB,KAAKlT,KAAKmyC,KAAM5tC,EAAGC,EAAG2O,EAAMC,KAoB5DmxD,OAAQ,SAAUhgE,EAAGC,EAAGme,EAAKtI,EAAUy8B,EAAiB0kC,EAAWC,EAAUC,EAAWC,EAASZ,GAI7F,MAFqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKoyC,OAE1C2oC,EAAM/xC,IAAI,GAAI5G,GAAOw5C,OAAO57E,KAAKmyC,KAAM5tC,EAAGC,EAAGme,EAAKtI,EAAUy8B,EAAiB0kC,EAAWC,EAAUC,EAAWC,KAaxHp1D,SAAU,SAAUhiB,EAAGC,EAAGu2E,GAItB,MAFqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKoyC,OAE1C2oC,EAAM/xC,IAAI,GAAI5G,GAAO7Z,SAASvoB,KAAKmyC,KAAM5tC,EAAGC,KAevDq3E,QAAS,SAAUt3E,EAAGC,EAAGs3E,GAErB,MAAO97E,MAAKmyC,KAAKiC,UAAUpL,IAAI,GAAI5G,GAAO8yB,UAAU6mB,OAAOC,QAAQh8E,KAAKmyC,KAAM5tC,EAAGC,EAAGs3E,KAwBxFG,UAAW,SAAUpoE,EAAMqoE,EAAgBC,EAAiBnkE,EAAOokE,EAAaC,EAAUC,EAAU/jE,EAASC,GAEzG,MAAO,IAAI4pB,GAAOm6C,UAAUv8E,KAAKmyC,KAAMt+B,EAAMqoE,EAAgBC,EAAiBnkE,EAAOokE,EAAaC,EAAUC,EAAU/jE,EAASC,IAgBnIgkE,WAAY,SAAUj4E,EAAGC,EAAGqP,EAAMV,EAAM2E,EAAMijE,GAI1C,MAFqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKoyC,OAE1C2oC,EAAM/xC,IAAI,GAAI5G,GAAO7qB,WAAWvX,KAAKmyC,KAAM5tC,EAAGC,EAAGqP,EAAMV,EAAM2E,KAmBxE2kE,QAAS,SAAU95D,EAAK+5D,EAAWC,EAAYx1E,EAAOC,GAElD,MAAO,IAAIg7B,GAAOw6C,QAAQ58E,KAAKmyC,KAAMxvB,EAAK+5D,EAAWC,EAAYx1E,EAAOC,IAc5E0D,cAAe,SAAU3D,EAAOC,EAAQub,EAAKk6D,IAEtB,mBAARl6D,IAA+B,KAARA,KAAcA,EAAM3iB,KAAKmyC,KAAKmC,IAAIsT,QAC1C,mBAAfi1B,KAA8BA,GAAa,EAEtD,IAAIhxE,GAAU,GAAIu2B,GAAOr3B,cAAc/K,KAAKmyC,KAAMhrC,EAAOC,EAAQub,EAOjE,OALIk6D,IAEA78E,KAAKmyC,KAAK0B,MAAMipC,iBAAiBn6D,EAAK9W,GAGnCA,GAcXkxE,WAAY,SAAU51E,EAAOC,EAAQub,EAAKk6D,GAEZ,mBAAfA,KAA8BA,GAAa,IACnC,mBAARl6D,IAA+B,KAARA,KAAcA,EAAM3iB,KAAKmyC,KAAKmC,IAAIsT,OAEpE,IAAI/7C,GAAU,GAAIu2B,GAAO46C,WAAWh9E,KAAKmyC,KAAMxvB,EAAKxb,EAAOC,EAO3D,OALIy1E,IAEA78E,KAAKmyC,KAAK0B,MAAMopC,cAAct6D,EAAK9W,GAGhCA,GAYXyqB,OAAQ,SAAUA,GAEd,GAAIhzB,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,GAE9CsyB,EAAS,GAAI8L,GAAOkZ,OAAOhlB,GAAQt2B,KAAKmyC,KAI5C,OAFA7b,GAAOvU,KAAKte,MAAM6yB,EAAQhzB,GAEnBgzB,GAaX6mB,OAAQ,SAAUA,GAEd,MAAOn9C,MAAKmyC,KAAK6K,QAAQhU,IAAImU,KAQrC/a,EAAOsyB,kBAAkB7wD,UAAUsB,YAAci9B,EAAOsyB,kBAgBxDtyB,EAAOuyB,kBAAoB,SAAUxiB,GAKjCnyC,KAAKmyC,KAAOA,EAKZnyC,KAAKoyC,MAAQpyC,KAAKmyC,KAAKC,OAI3BhQ,EAAOuyB,kBAAkB9wD,WAarB+7B,MAAO,SAAUr7B,EAAGC,EAAGme,EAAK5S,GAExB,MAAO,IAAIqyB,GAAOjJ,MAAMn5B,KAAKmyC,KAAM5tC,EAAGC,EAAGme,EAAK5S,IAclD+jB,OAAQ,SAAUvvB,EAAGC,EAAGme,EAAK5S,GAEzB,MAAO,IAAIqyB,GAAO12B,OAAO1L,KAAKmyC,KAAM5tC,EAAGC,EAAGme,EAAK5S,IAWnDirE,MAAO,SAAUh/D,GAEb,MAAO,IAAIomB,GAAO86C,MAAMlhE,EAAKhc,KAAKmyC,OAetC4oC,MAAO,SAAU1yE,EAAQgV,EAAMsiC,EAAYC,EAAYC,GAEnD,MAAO,IAAIzd,GAAOsd,MAAM1/C,KAAKmyC,KAAM,KAAM90B,EAAMsiC,EAAYC,EAAYC,IAa3EjxC,YAAa,SAAUvG,EAAQgV,EAAMsiC,GAKjC,MAHoB,mBAATtiC,KAAwBA,EAAO,SAChB,mBAAfsiC,KAA8BA,GAAa,GAE/C,GAAIvd,GAAO/vB,YAAYrS,KAAKmyC,KAAM9pC,EAAQgV,EAAMsiC,IAc3Du7B,MAAO,SAAUv4D,EAAKspB,EAAQkvC,EAAMnN,GAEhC,MAAOhuE,MAAKmyC,KAAK8B,MAAMjL,IAAIrmB,EAAKspB,EAAQkvC,EAAMnN,IAWlDoN,YAAa,SAAUz4D,GAEnB,MAAO3iB,MAAKmyC,KAAK8B,MAAMonC,UAAU14D,IAcrCsxB,MAAO,SAAUtxB,EAAKspB,EAAQkvC,EAAMnN,GAEhC,MAAOhuE,MAAKmyC,KAAK8B,MAAMjL,IAAIrmB,EAAKspB,EAAQkvC,EAAMnN,IAgBlDsN,WAAY,SAAU/2E,EAAGC,EAAG2C,EAAOC,EAAQub,EAAK5S,GAE5C,MAAO,IAAIqyB,GAAOk5B,WAAWt7D,KAAKmyC,KAAM5tC,EAAGC,EAAG2C,EAAOC,EAAQub,EAAK5S,IAgBtEwrE,KAAM,SAAUh3E,EAAGC,EAAGme,EAAK5S,EAAOnM,GAE9B,MAAO,IAAIw+B,GAAO/E,KAAKr9B,KAAKmyC,KAAM5tC,EAAGC,EAAGme,EAAK5S,EAAOnM,IAcxDuP,KAAM,SAAU5O,EAAGC,EAAG2O,EAAMC,GAExB,MAAO,IAAIgvB,GAAOlvB,KAAKlT,KAAKmyC,KAAM5tC,EAAGC,EAAG2O,EAAMC,IAmBlDmxD,OAAQ,SAAUhgE,EAAGC,EAAGme,EAAKtI,EAAUy8B,EAAiB0kC,EAAWC,EAAUC,EAAWC,GAEpF,MAAO,IAAIv5C,GAAOw5C,OAAO57E,KAAKmyC,KAAM5tC,EAAGC,EAAGme,EAAKtI,EAAUy8B,EAAiB0kC,EAAWC,EAAUC,EAAWC,IAY9Gp1D,SAAU,SAAUhiB,EAAGC,GAEnB,MAAO,IAAI49B,GAAO7Z,SAASvoB,KAAKmyC,KAAM5tC,EAAGC,IAe7Cq3E,QAAS,SAAUt3E,EAAGC,EAAGs3E,GAErB,MAAO,IAAI15C,GAAO8yB,UAAU6mB,OAAOC,QAAQh8E,KAAKmyC,KAAM5tC,EAAGC,EAAGs3E,IAwBhEG,UAAW,SAAUpoE,EAAMqoE,EAAgBC,EAAiBnkE,EAAOokE,EAAaC,EAAUC,EAAU/jE,EAASC,GAEzG,MAAO,IAAI4pB,GAAOm6C,UAAUv8E,KAAKmyC,KAAMt+B,EAAMqoE,EAAgBC,EAAiBnkE,EAAOokE,EAAaC,EAAUC,EAAU/jE,EAASC,IAenIgkE,WAAY,SAAUj4E,EAAGC,EAAGqP,EAAMV,EAAM2E,GAEpC,MAAO,IAAIsqB,GAAO7qB,WAAWvX,KAAKmyC,KAAM5tC,EAAGC,EAAGqP,EAAMV,EAAM2E,IAkB9D2kE,QAAS,SAAU95D,EAAK+5D,EAAWC,EAAYx1E,EAAOC,GAElD,MAAO,IAAIg7B,GAAOw6C,QAAQ58E,KAAKmyC,KAAMxvB,EAAK+5D,EAAWC,EAAYx1E,EAAOC,IAc5E0D,cAAe,SAAU3D,EAAOC,EAAQub,EAAKk6D,IAEtB,mBAARl6D,IAA+B,KAARA,KAAcA,EAAM3iB,KAAKmyC,KAAKmC,IAAIsT,QAC1C,mBAAfi1B,KAA8BA,GAAa,EAEtD,IAAIhxE,GAAU,GAAIu2B,GAAOr3B,cAAc/K,KAAKmyC,KAAMhrC,EAAOC,EAAQub,EAOjE,OALIk6D,IAEA78E,KAAKmyC,KAAK0B,MAAMipC,iBAAiBn6D,EAAK9W,GAGnCA,GAcXkxE,WAAY,SAAU51E,EAAOC,EAAQub,EAAKk6D,GAEZ,mBAAfA,KAA8BA,GAAa,IACnC,mBAARl6D,IAA+B,KAARA,KAAcA,EAAM3iB,KAAKmyC,KAAKmC,IAAIsT,OAEpE,IAAI/7C,GAAU,GAAIu2B,GAAO46C,WAAWh9E,KAAKmyC,KAAMxvB,EAAKxb,EAAOC,EAO3D,OALIy1E,IAEA78E,KAAKmyC,KAAK0B,MAAMopC,cAAct6D,EAAK9W,GAGhCA,GAYXyqB,OAAQ,SAAUA,GAEd,GAAIhzB,GAAOxB,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,GAE9CsyB,EAAS,GAAI8L,GAAOkZ,OAAOhlB,GAAQt2B,KAAKmyC,KAI5C,OAFA7b,GAAOvU,KAAKte,MAAM6yB,EAAQhzB,GAEnBgzB,IAMf8L,EAAOuyB,kBAAkB9wD,UAAUsB,YAAci9B,EAAOuyB,kBAoBxDvyB,EAAO46C,WAAa,SAAU7qC,EAAMxvB,EAAKxb,EAAOC,GAEvB,mBAAVD,KAAyBA,EAAQ,KACtB,mBAAXC,KAA0BA,EAAS,KAK9CpH,KAAKmyC,KAAOA,EAKZnyC,KAAK2iB,IAAMA,EAKX3iB,KAAKmH,MAAQA,EAKbnH,KAAKoH,OAASA,EAMdpH,KAAKqT,OAAS+uB,EAAO4b,OAAO3xC,OAAOlF,EAAOC,EAAQ,IAAI,GAMtDpH,KAAK8Q,QAAU9Q,KAAKqT,OAAOG,WAAW,MAKtCxT,KAAKm9E,IAAMn9E,KAAK8Q,QAKhB9Q,KAAKo9E,UAAYp9E,KAAK8Q,QAAQ6F,aAAa,EAAG,EAAGxP,EAAOC,GAKxDpH,KAAK4W,KAAO5W,KAAKo9E,UAAUxmE,KAK3B5W,KAAK6W,OAAS,KAKV7W,KAAKo9E,UAAUxmE,KAAKgR,QAEpB5nB,KAAK4nB,OAAS5nB,KAAKo9E,UAAUxmE,KAAKgR,OAClC5nB,KAAK6W,OAAS,GAAIwmE,aAAYr9E,KAAK4nB,SAI/BlkB,OAAoB,aAEpB1D,KAAK4nB,OAAS,GAAI01D,aAAYt9E,KAAKo9E,UAAUxmE,KAAKvS,QAClDrE,KAAK6W,OAAS,GAAIwmE,aAAYr9E,KAAK4nB,SAInC5nB,KAAK6W,OAAS7W,KAAKo9E,UAAUxmE,KAQrC5W,KAAK0P,YAAc,GAAIzP,MAAK8+B,YAAY/+B,KAAKqT,QAM7CrT,KAAK6L,QAAU,GAAI5L,MAAKmS,QAAQpS,KAAK0P,aAMrC1P,KAAKu9E,aAAe,GAAIn7C,GAAOo7C,MAAM,EAAG,EAAG,EAAGr2E,EAAOC,EAAQ,aAAc+qC,EAAKmC,IAAIsT,QAEpF5nD,KAAK6L,QAAQkE,MAAQ/P,KAAKu9E,aAM1Bv9E,KAAKiD,KAAOm/B,EAAOwB,WAKnB5jC,KAAKy9E,sBAAuB,EAK5Bz9E,KAAKwJ,OAAQ,EAGbxJ,KAAK09E,IAAM19E,KAAK8vB,MAMhB9vB,KAAK29E,OAAS,KAMd39E,KAAK49E,KAAO,GAAIx7C,GAAOn+B,MAMvBjE,KAAK69E,MAAQ,GAAIz7C,GAAOn+B,MAMxBjE,KAAK89E,OAAS,GAAI17C,GAAOn+B,MAMzBjE,KAAK+9E,QAAU,EAMf/9E,KAAKg+E,QAAW7lC,KAAM,EAAGzT,QAAS,GAMlC1kC,KAAKi+E,QAAU,GAAI77C,GAAOn+B,MAM1BjE,KAAKk+E,OAAS,EAMdl+E,KAAKm+E,OAAS,EAMdn+E,KAAKo+E,OAAS,EAMdp+E,KAAKq+E,QAAU,GAAIj8C,GAAO4E,QAI9B5E,EAAO46C,WAAWn5E,WASdmlC,IAAK,SAAUmpB,GAEX,GAAIrwD,MAAM6kC,QAAQwrB,GAEd,IAAK,GAAIhuD,GAAI,EAAGA,EAAIguD,EAAO9tD,OAAQF,IAE3BguD,EAAOhuD,GAAgB,aAEvBguD,EAAOhuD,GAAGm6E,YAAYt+E,UAM9BmyD,GAAOmsB,YAAYt+E,KAGvB,OAAOA,OAcX+zC,KAAM,SAAUliC,GAOZ,MALsB,gBAAXA,KAEPA,EAAS7R,KAAKmyC,KAAK0B,MAAM5S,SAASpvB,IAGlCA,GAEA7R,KAAK8L,OAAO+F,EAAO1K,MAAO0K,EAAOzK,QACjCpH,KAAK09E,MAOT19E,KAAKu+E,KAAK1sE,GAEV7R,KAAKwZ,SAEExZ,MAdP,QA8BJ8vB,MAAO,WAMH,MAJA9vB,MAAK8Q,QAAQwE,UAAU,EAAG,EAAGtV,KAAKmH,MAAOnH,KAAKoH,QAE9CpH,KAAKwJ,OAAQ,EAENxJ,MAcX8T,KAAM,SAAU6V,EAAGC,EAAGtkB,EAAGD,GAQrB,MANiB,mBAANA,KAAqBA,EAAI,GAEpCrF,KAAK8Q,QAAQ6E,UAAY,QAAUgU,EAAI,IAAMC,EAAI,IAAMtkB,EAAI,IAAMD,EAAI,IACrErF,KAAK8Q,QAAQ2F,SAAS,EAAG,EAAGzW,KAAKmH,MAAOnH,KAAKoH,QAC7CpH,KAAKwJ,OAAQ,EAENxJ,MAUX8L,OAAQ,SAAU3E,EAAOC,GA0BrB,OAxBID,IAAUnH,KAAKmH,OAASC,IAAWpH,KAAKoH,UAExCpH,KAAKmH,MAAQA,EACbnH,KAAKoH,OAASA,EAEdpH,KAAKqT,OAAOlM,MAAQA,EACpBnH,KAAKqT,OAAOjM,OAASA,EAErBpH,KAAK0P,YAAYvI,MAAQA,EACzBnH,KAAK0P,YAAYtI,OAASA,EAE1BpH,KAAKu9E,aAAap2E,MAAQA,EAC1BnH,KAAKu9E,aAAan2E,OAASA,EAE3BpH,KAAK6L,QAAQ1E,MAAQA,EACrBnH,KAAK6L,QAAQzE,OAASA,EAEtBpH,KAAK6L,QAAQ+E,KAAKzJ,MAAQA,EAC1BnH,KAAK6L,QAAQ+E,KAAKxJ,OAASA,EAE3BpH,KAAKwZ,SACLxZ,KAAKwJ,OAAQ,GAGVxJ,MAgBXwZ,OAAQ,SAAUjV,EAAGC,EAAG2C,EAAOC,GA4B3B,MA1BiB,mBAAN7C,KAAqBA,EAAI,GACnB,mBAANC,KAAqBA,EAAI,GACf,mBAAV2C,KAAyBA,EAAQnH,KAAKmH,OAC3B,mBAAXC,KAA0BA,EAASpH,KAAKoH,QAEnDpH,KAAKo9E,UAAYp9E,KAAK8Q,QAAQ6F,aAAapS,EAAGC,EAAG2C,EAAOC,GACxDpH,KAAK4W,KAAO5W,KAAKo9E,UAAUxmE,KAEvB5W,KAAKo9E,UAAUxmE,KAAKgR,QAEpB5nB,KAAK4nB,OAAS5nB,KAAKo9E,UAAUxmE,KAAKgR,OAClC5nB,KAAK6W,OAAS,GAAIwmE,aAAYr9E,KAAK4nB,SAI/BlkB,OAAoB,aAEpB1D,KAAK4nB,OAAS,GAAI01D,aAAYt9E,KAAKo9E,UAAUxmE,KAAKvS,QAClDrE,KAAK6W,OAAS,GAAIwmE,aAAYr9E,KAAK4nB,SAInC5nB,KAAK6W,OAAS7W,KAAKo9E,UAAUxmE,KAI9B5W;EAuBXw+E,gBAAiB,SAAUnkE,EAAUy8B,EAAiBvyC,EAAGC,EAAG2C,EAAOC,GAE9C,mBAAN7C,KAAqBA,EAAI,GACnB,mBAANC,KAAqBA,EAAI,GACf,mBAAV2C,KAAyBA,EAAQnH,KAAKmH,OAC3B,mBAAXC,KAA0BA,EAASpH,KAAKoH,OAQnD,KAAK,GANDie,GAAI9gB,EAAI4C,EACRszB,EAAIj2B,EAAI4C,EACRq3E,EAAQr8C,EAAOkd,MAAMo/B,cACrBznE,GAAW0S,EAAG,EAAGC,EAAG,EAAGtkB,EAAG,EAAGD,EAAG,GAChCmE,GAAQ,EAEH9D,EAAKlB,EAAQi2B,EAAL/0B,EAAQA,IAErB,IAAK,GAAID,GAAKlB,EAAQ8gB,EAAL5f,EAAQA,IAErB28B,EAAOkd,MAAMq/B,YAAY3+E,KAAK4+E,WAAWn5E,EAAIC,GAAK+4E,GAElDxnE,EAASoD,EAAStW,KAAK+yC,EAAiB2nC,EAAOh5E,EAAIC,GAE/CuR,KAAW,GAAoB,OAAXA,GAA8BxJ,SAAXwJ,IAEvCjX,KAAK6+E,WAAWp5E,EAAIC,EAAIuR,EAAO0S,EAAG1S,EAAO2S,EAAG3S,EAAO3R,EAAG2R,EAAO5R,GAAG,GAChEmE,GAAQ,EAWpB,OANIA,KAEAxJ,KAAK8Q,QAAQ4oB,aAAa15B,KAAKo9E,UAAW,EAAG,GAC7Cp9E,KAAKwJ,OAAQ,GAGVxJ,MAoBX8+E,aAAc,SAAUzkE,EAAUy8B,EAAiBvyC,EAAGC,EAAG2C,EAAOC,GAE3C,mBAAN7C,KAAqBA,EAAI,GACnB,mBAANC,KAAqBA,EAAI,GACf,mBAAV2C,KAAyBA,EAAQnH,KAAKmH,OAC3B,mBAAXC,KAA0BA,EAASpH,KAAKoH,OAQnD,KAAK,GANDie,GAAI9gB,EAAI4C,EACRszB,EAAIj2B,EAAI4C,EACRq3E,EAAQ,EACRxnE,EAAS,EACTzN,GAAQ,EAEH9D,EAAKlB,EAAQi2B,EAAL/0B,EAAQA,IAErB,IAAK,GAAID,GAAKlB,EAAQ8gB,EAAL5f,EAAQA,IAErBg5E,EAAQz+E,KAAK4+E,WAAWn5E,EAAIC,GAC5BuR,EAASoD,EAAStW,KAAK+yC,EAAiB2nC,EAAOh5E,EAAIC,GAE/CuR,IAAWwnE,IAEXz+E,KAAK6W,OAAOnR,EAAK1F,KAAKmH,MAAQ1B,GAAMwR,EACpCzN,GAAQ,EAWpB,OANIA,KAEAxJ,KAAK8Q,QAAQ4oB,aAAa15B,KAAKo9E,UAAW,EAAG,GAC7Cp9E,KAAKwJ,OAAQ,GAGVxJ,MAoBX++E,WAAY,SAAUC,EAAIC,EAAIn4E,EAAIL,EAAIy4E,EAAIC,EAAI1yD,EAAID,EAAI4yD,GAElD,GAAI3xC,GAAK,EACLC,EAAK,EACLroB,EAAIrlB,KAAKmH,MACTszB,EAAIz6B,KAAKoH,OACTyK,EAASuwB,EAAOkd,MAAM+/B,UAAUL,EAAIC,EAAIn4E,EAAIL,EAEjCgH,UAAX2xE,GAAwBA,YAAkBh9C,GAAOl7B,YAEjDumC,EAAK2xC,EAAO76E,EACZmpC,EAAK0xC,EAAO56E,EACZ6gB,EAAI+5D,EAAOj4E,MACXszB,EAAI2kD,EAAOh4E,OAGf,KAAK,GAAI5C,GAAI,EAAOi2B,EAAJj2B,EAAOA,IAEnB,IAAK,GAAID,GAAI,EAAO8gB,EAAJ9gB,EAAOA,IAEfvE,KAAK4+E,WAAWnxC,EAAKlpC,EAAGmpC,EAAKlpC,KAAOqN,GAEpC7R,KAAK6+E,WAAWpxC,EAAKlpC,EAAGmpC,EAAKlpC,EAAG06E,EAAIC,EAAI1yD,EAAID,GAAI,EAQ5D,OAHAxsB,MAAK8Q,QAAQ4oB,aAAa15B,KAAKo9E,UAAW,EAAG,GAC7Cp9E,KAAKwJ,OAAQ,EAENxJ,MAcXs/E,OAAQ,SAAU7kD,EAAG+P,EAAG/F,EAAG26C,GAMvB,IAJiB,mBAAN3kD,IAA2B,OAANA,KAAcA,GAAI,IACjC,mBAAN+P,IAA2B,OAANA,KAAcA,GAAI,IACjC,mBAAN/F,IAA2B,OAANA,KAAcA,GAAI,GAE7ChK,GAAM+P,GAAM/F,EAAjB,CAKsB,mBAAX26C,KAEPA,EAAS,GAAIh9C,GAAOl7B,UAAU,EAAG,EAAGlH,KAAKmH,MAAOnH,KAAKoH,QAKzD,KAAK,GAFDq3E,GAAQr8C,EAAOkd,MAAMo/B,cAEhBl6E,EAAI46E,EAAO56E,EAAGA,EAAI46E,EAAOn3C,OAAQzjC,IAEtC,IAAK,GAAID,GAAI66E,EAAO76E,EAAGA,EAAI66E,EAAOl5C,MAAO3hC,IAErC69B,EAAOkd,MAAMq/B,YAAY3+E,KAAK4+E,WAAWr6E,EAAGC,GAAIi6E,GAAO,GAEnDhkD,IAEAgkD,EAAMhkD,EAAIA,GAGV+P,IAEAi0C,EAAMj0C,EAAIA,GAGV/F,IAEAg6C,EAAMh6C,EAAIA,GAGdrC,EAAOkd,MAAMigC,SAASd,EAAMhkD,EAAGgkD,EAAMj0C,EAAGi0C,EAAMh6C,EAAGg6C,GACjDz+E,KAAK6+E,WAAWt6E,EAAGC,EAAGi6E,EAAM90D,EAAG80D,EAAM70D,EAAG60D,EAAMn5E,EAAGm5E,EAAMp5E,GAAG,EAOlE,OAHArF,MAAK8Q,QAAQ4oB,aAAa15B,KAAKo9E,UAAW,EAAG,GAC7Cp9E,KAAKwJ,OAAQ,EAENxJ,OAgBXw/E,SAAU,SAAU/kD,EAAG+P,EAAG/F,EAAG26C,GAMzB,IAJiB,mBAAN3kD,IAA2B,OAANA,KAAcA,GAAI,IACjC,mBAAN+P,IAA2B,OAANA,KAAcA,GAAI,IACjC,mBAAN/F,IAA2B,OAANA,KAAcA,GAAI,GAE7ChK,GAAM+P,GAAM/F,EAAjB,CAKsB,mBAAX26C,KAEPA,EAAS,GAAIh9C,GAAOl7B,UAAU,EAAG,EAAGlH,KAAKmH,MAAOnH,KAAKoH,QAKzD,KAAK,GAFDq3E,GAAQr8C,EAAOkd,MAAMo/B,cAEhBl6E,EAAI46E,EAAO56E,EAAGA,EAAI46E,EAAOn3C,OAAQzjC,IAEtC,IAAK,GAAID,GAAI66E,EAAO76E,EAAGA,EAAI66E,EAAOl5C,MAAO3hC,IAErC69B,EAAOkd,MAAMq/B,YAAY3+E,KAAK4+E,WAAWr6E,EAAGC,GAAIi6E,GAAO,GAEnDhkD,IAEAgkD,EAAMhkD,EAAIz6B,KAAKmyC,KAAK6B,KAAKoR,KAAKq5B,EAAMhkD,EAAIA,EAAG,EAAG,IAG9C+P,IAEAi0C,EAAMj0C,EAAIxqC,KAAKmyC,KAAK6B,KAAKyrC,WAAWhB,EAAMj0C,EAAIA,EAAG,EAAG,IAGpD/F,IAEAg6C,EAAMh6C,EAAIzkC,KAAKmyC,KAAK6B,KAAKyrC,WAAWhB,EAAMh6C,EAAIA,EAAG,EAAG,IAGxDrC,EAAOkd,MAAMigC,SAASd,EAAMhkD,EAAGgkD,EAAMj0C,EAAGi0C,EAAMh6C,EAAGg6C,GACjDz+E,KAAK6+E,WAAWt6E,EAAGC,EAAGi6E,EAAM90D,EAAG80D,EAAM70D,EAAG60D,EAAMn5E,EAAGm5E,EAAMp5E,GAAG,EAOlE,OAHArF,MAAK8Q,QAAQ4oB,aAAa15B,KAAKo9E,UAAW,EAAG,GAC7Cp9E,KAAKwJ,OAAQ,EAENxJ,OAiBX6+E,WAAY,SAAUt6E,EAAGC,EAAGk7E,EAAKC,EAAOC,EAAM53E,EAAO63E,GAsBjD,MApByB,mBAAdA,KAA6BA,GAAY,GAEhDt7E,GAAK,GAAKA,GAAKvE,KAAKmH,OAAS3C,GAAK,GAAKA,GAAKxE,KAAKoH,SAI7CpH,KAAK6W,OAAOrS,EAAIxE,KAAKmH,MAAQ5C,GAF7B69B,EAAOmyB,OAAOurB,cAEqB93E,GAAS,GAAO43E,GAAQ,GAAOD,GAAS,EAAKD,EAI7CA,GAAO,GAAOC,GAAS,GAAOC,GAAQ,EAAK53E,EAG9E63E,IAEA7/E,KAAK8Q,QAAQ4oB,aAAa15B,KAAKo9E,UAAW,EAAG,GAC7Cp9E,KAAKwJ,OAAQ,IAIdxJ,MAiBX+/E,SAAU,SAAUx7E,EAAGC,EAAGk7E,EAAKC,EAAOC,EAAMC,GAExC,MAAO7/E,MAAK6+E,WAAWt6E,EAAGC,EAAGk7E,EAAKC,EAAOC,EAAM,IAAKC,IAexDG,SAAU,SAAUz7E,EAAGC,EAAGsjC,GAEjBA,IAEDA,EAAM1F,EAAOkd,MAAMo/B,cAGvB,IAAI/xE,MAAWpI,EAAKC,EAAIxE,KAAKmH,MAS7B,OAPAwF,IAAS,EAETm7B,EAAIne,EAAI3pB,KAAK4W,KAAKjK,GAClBm7B,EAAIle,EAAI5pB,KAAK4W,OAAOjK,GACpBm7B,EAAIxiC,EAAItF,KAAK4W,OAAOjK,GACpBm7B,EAAIziC,EAAIrF,KAAK4W,OAAOjK,GAEbm7B,GAeX82C,WAAY,SAAUr6E,EAAGC,GAErB,MAAID,IAAK,GAAKA,GAAKvE,KAAKmH,OAAS3C,GAAK,GAAKA,GAAKxE,KAAKoH,OAE1CpH,KAAK6W,OAAOrS,EAAIxE,KAAKmH,MAAQ5C,GAFxC,QAoBJ07E,YAAa,SAAU17E,EAAGC,EAAGsjC,EAAKo4C,EAAKC,GAEnC,MAAO/9C,GAAOkd,MAAMq/B,YAAY3+E,KAAK4+E,WAAWr6E,EAAGC,GAAIsjC,EAAKo4C,EAAKC,IAWrEC,UAAW,SAAU7kD,GAEjB,MAAOv7B,MAAK8Q,QAAQ6F,aAAa4kB,EAAKh3B,EAAGg3B,EAAK/2B,EAAG+2B,EAAKp0B,MAAOo0B,EAAKn0B,SAmBtEi5E,cAAe,SAAU/6C,GAEI,mBAAdA,KAA6BA,EAAY,EAEpD,IAAIm5C,GAAQr8C,EAAOkd,MAAMo/B,cAErBn6E,EAAI,EACJC,EAAI,EACJsb,EAAI,EACJwgE,GAAO,CAEO,KAAdh7C,GAEAxlB,EAAI,GACJtb,EAAIxE,KAAKoH,QAEU,IAAdk+B,IAELxlB,EAAI,GACJvb,EAAIvE,KAAKmH,MAGb,GAEIi7B,GAAOkd,MAAMq/B,YAAY3+E,KAAK4+E,WAAWr6E,EAAGC,GAAIi6E,GAE9B,IAAdn5C,GAAiC,IAAdA,GAGnB/gC,IAEIA,IAAMvE,KAAKmH,QAEX5C,EAAI,EACJC,GAAKsb,GAEDtb,GAAKxE,KAAKoH,QAAe,GAAL5C,KAEpB87E,GAAO,MAII,IAAdh7C,GAAiC,IAAdA,KAGxB9gC,IAEIA,IAAMxE,KAAKoH,SAEX5C,EAAI,EACJD,GAAKub,GAEDvb,GAAKvE,KAAKmH,OAAc,GAAL5C,KAEnB+7E,GAAO,WAKJ,IAAZ7B,EAAMp5E,IAAYi7E,EAKzB,OAHA7B,GAAMl6E,EAAIA,EACVk6E,EAAMj6E,EAAIA,EAEHi6E,GAYXl0E,UAAW,SAAUgxB,GAOjB,MALoB,mBAATA,KAAwBA,EAAO,GAAI6G,GAAOl7B,WAErDq0B,EAAKh3B,EAAIvE,KAAKqgF,cAAc,GAAG97E,EAG3Bg3B,EAAKh3B,IAAMvE,KAAKmH,MAETo0B,EAAK8L,MAAM,EAAG,EAAG,EAAG,IAG/B9L,EAAK/2B,EAAIxE,KAAKqgF,cAAc,GAAG77E,EAC/B+2B,EAAKp0B,MAASnH,KAAKqgF,cAAc,GAAG97E,EAAIg3B,EAAKh3B,EAAK,EAClDg3B,EAAKn0B,OAAUpH,KAAKqgF,cAAc,GAAG77E,EAAI+2B,EAAK/2B,EAAK,EAE5C+2B,IAgBX0rB,WAAY,SAAU1iD,EAAGC,EAAG+7E,EAASC,EAAS1rD,EAAQE,GAElDF,EAASA,GAAU,EACnBE,EAASA,GAAU,CAEnB,IAAI4K,GAAQ5/B,KAAKmyC,KAAKnJ,IAAIpJ,MAAMr7B,EAAGC,EAAGxE,KAKtC,OAHA4/B,GAAM3zB,OAAO3C,IAAIi3E,EAASC,GAC1B5gD,EAAMx5B,MAAMkD,IAAIwrB,EAAQE,GAEjB4K,GAiCX4G,KAAM,SAAU30B,EAAQtN,EAAGC,EAAG2C,EAAOC,EAAQ3B,EAAIC,EAAI2nD,EAAUC,EAAWjnD,EAAQk6E,EAASC,EAAS1rD,EAAQE,EAAQhtB,EAAOwH,EAAW+iC,GAMlI,IAJsB,mBAAX1gC,IAAqC,OAAXA,KAAmBA,EAAS7R,MAEjEA,KAAK29E,OAAS9rE,EAEVA,YAAkBuwB,GAAO12B,QAAUmG,YAAkBuwB,GAAOjJ,OAAStnB,YAAkBuwB,GAAOlvB,KAG9FlT,KAAK49E,KAAKt0E,IAAIuI,EAAOhG,QAAQ+E,KAAKrM,EAAGsN,EAAOhG,QAAQ+E,KAAKpM,GACzDxE,KAAK69E,MAAMv0E,IAAIuI,EAAOhG,QAAQ+E,KAAKzJ,MAAO0K,EAAOhG,QAAQ+E,KAAKxJ,QAC9DpH,KAAK89E,OAAOx0E,IAAIuI,EAAOzL,MAAM7B,EAAGsN,EAAOzL,MAAM5B,GAC7CxE,KAAKi+E,QAAQ30E,IAAIuI,EAAO5F,OAAO1H,EAAGsN,EAAO5F,OAAOzH,GAChDxE,KAAK+9E,QAAUlsE,EAAO9J,SACtB/H,KAAKg+E,OAAOt5C,QAAU7yB,EAAO7J,MAC7BhI,KAAK29E,OAAS9rE,EAAOhG,QAAQ6D,YAAYmC,OAErCA,EAAOhG,QAAQ0F,OAGf9L,GAAMoM,EAAOhG,QAAQ0F,KAAKhN,EAAIsN,EAAO5F,OAAO1H,EAAIsN,EAAOhG,QAAQ0F,KAAKpK,MACpEzB,GAAMmM,EAAOhG,QAAQ0F,KAAK/M,EAAIqN,EAAO5F,OAAOzH,EAAIqN,EAAOhG,QAAQ0F,KAAKnK,QAGpD,WAAhByK,EAAOtC,OAEHsC,EAAO5B,aAAe4B,EAAOtC,OAE7BsC,EAAO5B,WAAa4B,EAAOtC,KAC3BsC,EAAOJ,cAAgBxR,KAAKyR,aAAaC,iBAAiBE,EAAQA,EAAOtC,OAG7EvP,KAAK29E,OAAS9rE,EAAOJ,mBAI7B,CAQI,GANAzR,KAAK49E,KAAKt0E,IAAI,GACdtJ,KAAK89E,OAAOx0E,IAAI,GAChBtJ,KAAKi+E,QAAQ30E,IAAI,GACjBtJ,KAAK+9E,QAAU,EACf/9E,KAAKg+E,OAAOt5C,QAAU,EAElB7yB,YAAkBuwB,GAAO46C,WAEzBh9E,KAAK29E,OAAS9rE,EAAOwB,WAEpB,IAAsB,gBAAXxB,GAChB,CAGI,GAFAA,EAAS7R,KAAKmyC,KAAK0B,MAAM5S,SAASpvB,GAEnB,OAAXA,EAEA,MAIA7R,MAAK29E,OAAS9rE,EAItB7R,KAAK69E,MAAMv0E,IAAItJ,KAAK29E,OAAOx2E,MAAOnH,KAAK29E,OAAOv2E,QA6DlD,OAzDiB,mBAAN7C,IAA2B,OAANA,KAAcA,EAAI,IACjC,mBAANC,IAA2B,OAANA,KAAcA,EAAI,GAG9C2C,IAEAnH,KAAK69E,MAAMt5E,EAAI4C,GAGfC,IAEApH,KAAK69E,MAAMr5E,EAAI4C,IAID,mBAAP3B,IAA6B,OAAPA,KAAeA,EAAKlB,IACnC,mBAAPmB,IAA6B,OAAPA,KAAeA,EAAKlB,IAC7B,mBAAb6oD,IAAyC,OAAbA,KAAqBA,EAAWrtD,KAAK69E,MAAMt5E,IACzD,mBAAd+oD,IAA2C,OAAdA,KAAsBA,EAAYttD,KAAK69E,MAAMr5E,GAG/D,gBAAX6B,KAEPrG,KAAK+9E,QAAU13E,GAII,gBAAZk6E,KAEPvgF,KAAKi+E,QAAQ15E,EAAIg8E,GAGE,gBAAZC,KAEPxgF,KAAKi+E,QAAQz5E,EAAIg8E,GAIC,gBAAX1rD,KAEP90B,KAAK89E,OAAOv5E,EAAIuwB,GAGE,gBAAXE,KAEPh1B,KAAK89E,OAAOt5E,EAAIwwB,GAIC,gBAAVhtB,KAEPhI,KAAKg+E,OAAOt5C,QAAU18B,GAGD,mBAAdwH,KAA6BA,EAAY,MAC7B,mBAAZ+iC,KAA2BA,GAAU,GAE5CvyC,KAAKg+E,OAAOt5C,SAAW,GAAuB,IAAlB1kC,KAAK89E,OAAOv5E,GAA6B,IAAlBvE,KAAK89E,OAAOt5E,GAA4B,IAAjBxE,KAAK69E,MAAMt5E,GAA4B,IAAjBvE,KAAK69E,MAAMr5E,EAA/G,QAMAxE,KAAKg+E,OAAO7lC,KAAOn4C,KAAK8Q,QAAQI,YAEhClR,KAAK8Q,QAAQynB,OAEbv4B,KAAK8Q,QAAQI,YAAclR,KAAKg+E,OAAOt5C,QAEnCl1B,IAEAxP,KAAK8Q,QAAQC,yBAA2BvB,GAGxC+iC,IAEA9sC,GAAM,EACNC,GAAM,GAGV1F,KAAK8Q,QAAQ3K,UAAUV,EAAIC,GAE3B1F,KAAK8Q,QAAQ1K,MAAMpG,KAAK89E,OAAOv5E,EAAGvE,KAAK89E,OAAOt5E,GAE9CxE,KAAK8Q,QAAQzK,OAAOrG,KAAK+9E,SAEzB/9E,KAAK8Q,QAAQc,UAAU5R,KAAK29E,OAAQ39E,KAAK49E,KAAKr5E,EAAIA,EAAGvE,KAAK49E,KAAKp5E,EAAIA,EAAGxE,KAAK69E,MAAMt5E,EAAGvE,KAAK69E,MAAMr5E,GAAI6oD,EAAWrtD,KAAKi+E,QAAQ15E,GAAI+oD,EAAYttD,KAAKi+E,QAAQz5E,EAAG6oD,EAAUC,GAErKttD,KAAK8Q,QAAQ8nB,UAEb54B,KAAK8Q,QAAQI,YAAclR,KAAKg+E,OAAO7lC,KAEvCn4C,KAAKwJ,OAAQ,EAENxJ,OAiBXygF,SAAU,SAAU5uE,EAAQs8B,EAAM5pC,EAAGC,EAAGwD,EAAOwH,EAAW+iC,GAEtD,MAAOvyC,MAAKwmC,KAAK30B,EAAQs8B,EAAK5pC,EAAG4pC,EAAK3pC,EAAG2pC,EAAKhnC,MAAOgnC,EAAK/mC,OAAQ7C,EAAGC,EAAG2pC,EAAKhnC,MAAOgnC,EAAK/mC,OAAQ,EAAG,EAAG,EAAG,EAAG,EAAGY,EAAOwH,EAAW+iC,IAmBtIgsC,KAAM,SAAU1sE,EAAQtN,EAAGC,EAAG2C,EAAOC,EAAQoI,EAAW+iC,GAGpD,MAAOvyC,MAAKwmC,KAAK30B,EAAQ,KAAM,KAAM,KAAM,KAAMtN,EAAGC,EAAG2C,EAAOC,EAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAMoI,EAAW+iC,IAgBzHmuC,OAAQ,SAAUt6D,EAAOu6D,EAAMp8E,EAAGC,GAET,mBAAV4hB,IAAmC,OAAVA,EAEhCpmB,KAAK8Q,QAAQ8vE,YAAc,iBAI3B5gF,KAAK8Q,QAAQ8vE,YAAcx6D,EAC3BpmB,KAAK8Q,QAAQ+vE,WAAaF,GAAQ,EAClC3gF,KAAK8Q,QAAQgwE,cAAgBv8E,GAAK,GAClCvE,KAAK8Q,QAAQiwE,cAAgBv8E,GAAK,KAe1Cw8E,UAAW,SAAUnvE,EAAQ1C,EAAM8xE,EAAYC,GAoB3C,MAlBwB,mBAAbA,IAAyC,OAAbA,EAEnClhF,KAAKu+E,KAAKpvE,GAAMgyE,kBAIhBnhF,KAAKu+E,KAAKpvE,EAAM+xE,EAAS38E,EAAG28E,EAAS18E,EAAG08E,EAAS/5E,MAAO+5E,EAAS95E,QAAQ+5E,kBAGnD,mBAAfF,IAA6C,OAAfA,EAErCjhF,KAAKu+E,KAAK1sE,GAAQuvE,aAIlBphF,KAAKu+E,KAAK1sE,EAAQovE,EAAW18E,EAAG08E,EAAWz8E,EAAGy8E,EAAW95E,MAAO85E,EAAW75E,QAAQg6E,aAGhFphF,MA0BXqhF,QAAS,SAAUC,EAAa33D,EAAGC,EAAGtkB,EAAGD,EAAGyG,EAAQozE,EAAIC,EAAI1yD,GA2BxD,MAzBiB,mBAANpnB,KAAqBA,EAAI,KACd,mBAAXyG,KAA0BA,GAAS,GAC5B,mBAAPozE,KAAsBA,EAAKv1D,GACpB,mBAAPw1D,KAAsBA,EAAKv1D,GACpB,mBAAP6C,KAAsBA,EAAKnnB,GAElCwG,GAEAw1E,EAAYx1E,OAAO9L,KAAKmH,MAAOnH,KAAKoH,QAGxCpH,KAAKw+E,gBACD,SAAUC,EAAOl6E,EAAGC,GAMhB,MAJIi6E,GAAM90D,IAAMA,GAAK80D,EAAM70D,IAAMA,GAAK60D,EAAMn5E,IAAMA,GAE9Cg8E,EAAYzC,WAAWt6E,EAAGC,EAAG06E,EAAIC,EAAI1yD,EAAIpnB,GAAG,IAEzC,GAEXrF,MAEJshF,EAAYxwE,QAAQ4oB,aAAa4nD,EAAYlE,UAAW,EAAG,GAC3DkE,EAAY93E,OAAQ,EAEb83E,GAeX/lD,KAAM,SAAUh3B,EAAGC,EAAG2C,EAAOC,EAAQuO,GASjC,MAPyB,mBAAdA,KAEP3V,KAAK8Q,QAAQ6E,UAAYA,GAG7B3V,KAAK8Q,QAAQ2F,SAASlS,EAAGC,EAAG2C,EAAOC,GAE5BpH,MAcXg3D,OAAQ,SAAUzyD,EAAGC,EAAGiD,EAAQkO,GAa5B,MAXyB,mBAAdA,KAEP3V,KAAK8Q,QAAQ6E,UAAYA,GAG7B3V,KAAK8Q,QAAQqpB,YACbn6B,KAAK8Q,QAAQ0pB,IAAIj2B,EAAGC,EAAGiD,EAAQ,EAAa,EAAVvF,KAAKC,IAAQ,GAC/CnC,KAAK8Q,QAAQwpB,YAEbt6B,KAAK8Q,QAAQgD,OAEN9T,MAaXuhF,YAAa,SAAUzqE,EAAM8oB,EAAOvb,GAIhC,GAFsB,mBAAXA,KAA0BA,EAAS,YAEzB,gBAAVub,KAEPA,EAAQ5/B,KAAKmyC,KAAK0B,MAAM5S,SAASrB,IAFrC,CAUA,GAAIz4B,GAAQ2P,EAAKzS,MAqBjB,OAnBe,cAAXggB,GAA0Bld,EAAQy4B,EAAMz4B,QAExCA,EAAQy4B,EAAMz4B,OAGlBnH,KAAK8Q,QAAQ6E,UAAY3V,KAAK8Q,QAAQstB,cAAcwB,EAAOvb,GAE3DrkB,KAAKq+E,QAAU,GAAIj8C,GAAO4E,OAAOlwB,EAAK1H,MAAM7K,EAAGuS,EAAK1H,MAAM5K,EAAGo7B,EAAMx4B,QAEnEpH,KAAKq+E,QAAQz2C,mBAAmB9wB,EAAKxQ,MAAQ,oBAAoB,EAAOtG,KAAK49E,MAE7E59E,KAAK8Q,QAAQynB,OACbv4B,KAAK8Q,QAAQ3K,UAAUnG,KAAK49E,KAAKr5E,EAAGvE,KAAK49E,KAAKp5E,GAC9CxE,KAAK8Q,QAAQzK,OAAOyQ,EAAKxQ,OACzBtG,KAAK8Q,QAAQ2F,SAAS,EAAG,EAAGtP,EAAOy4B,EAAMx4B,QACzCpH,KAAK8Q,QAAQ8nB,UAEb54B,KAAKwJ,OAAQ,EAENxJ,OAYXiL,OAAQ,WAQJ,OANKjL,KAAKy9E,sBAAwBz9E,KAAKwJ,QAEnCxJ,KAAK0P,YAAYlG,QACjBxJ,KAAKwJ,OAAQ,GAGVxJ,MAUXohF,WAAY,WAGR,MADAphF,MAAK8Q,QAAQC,yBAA2B,cACjC/Q,MAUXwhF,gBAAiB,WAGb,MADAxhF,MAAK8Q,QAAQC,yBAA2B,cACjC/Q,MAUXyhF,cAAe,WAGX,MADAzhF,MAAK8Q,QAAQC,yBAA2B,YACjC/Q,MAUX0hF,eAAgB,WAGZ,MADA1hF,MAAK8Q,QAAQC,yBAA2B,aACjC/Q,MAUXmhF,gBAAiB,WAGb,MADAnhF,MAAK8Q,QAAQC,yBAA2B,cACjC/Q,MAUX2hF,qBAAsB,WAGlB,MADA3hF,MAAK8Q,QAAQC,yBAA2B,mBACjC/Q,MAUX4hF,mBAAoB,WAGhB,MADA5hF,MAAK8Q,QAAQC,yBAA2B,iBACjC/Q,MAUX6hF,oBAAqB,WAGjB,MADA7hF,MAAK8Q,QAAQC,yBAA2B,kBACjC/Q,MAUX8hF,qBAAsB,WAGlB,MADA9hF,MAAK8Q,QAAQC,yBAA2B,mBACjC/Q,MAUX+hF,SAAU,WAGN,MADA/hF,MAAK8Q,QAAQC,yBAA2B,MACjC/Q,MAUXgiF,SAAU,WAGN,MADAhiF,MAAK8Q,QAAQC,yBAA2B,UACjC/Q,MAUXiiF,cAAe,WAGX,MADAjiF,MAAK8Q,QAAQC,yBAA2B,WACjC/Q,MAUXkiF,YAAa,WAGT,MADAliF,MAAK8Q,QAAQC,yBAA2B,SACjC/Q,MAUXmiF,aAAc,WAGV,MADAniF,MAAK8Q,QAAQC,yBAA2B,UACjC/Q,MAUXoiF,YAAa,WAGT,MADApiF,MAAK8Q,QAAQC,yBAA2B,SACjC/Q,MAUXqiF,aAAc,WAGV,MADAriF,MAAK8Q,QAAQC,yBAA2B,UACjC/Q,MAUXsiF,gBAAiB,WAGb,MADAtiF,MAAK8Q,QAAQC,yBAA2B,cACjC/Q,MAUXuiF,eAAgB,WAGZ,MADAviF,MAAK8Q,QAAQC,yBAA2B,aACjC/Q,MAUXwiF,eAAgB,WAGZ,MADAxiF,MAAK8Q,QAAQC,yBAA2B,aACjC/Q,MAUXyiF,eAAgB,WAGZ,MADAziF,MAAK8Q,QAAQC,yBAA2B,aACjC/Q,MAUX0iF,gBAAiB,WAGb,MADA1iF,MAAK8Q,QAAQC,yBAA2B,aACjC/Q,MAUX2iF,eAAgB,WAGZ,MADA3iF,MAAK8Q,QAAQC,yBAA2B,YACjC/Q,MAUX4iF,SAAU,WAGN,MADA5iF,MAAK8Q,QAAQC,yBAA2B,MACjC/Q,MAUX6iF,gBAAiB,WAGb,MADA7iF,MAAK8Q,QAAQC,yBAA2B,aACjC/Q,MAUX8iF,WAAY,WAGR,MADA9iF,MAAK8Q,QAAQC,yBAA2B,QACjC/Q,MAUX+iF,gBAAiB,WAGb,MADA/iF,MAAK8Q,QAAQC,yBAA2B,aACjC/Q,OAUfmJ,OAAOC,eAAeg5B,EAAO46C,WAAWn5E,UAAW,YAE/CwF,IAAK,WAED+4B,EAAO4b,OAAOglC,oBAAoBhjF,KAAK8Q,UAI3CxH,IAAK,SAAUC,GAEX64B,EAAO4b,OAAOilC,oBAAoBjjF,KAAK8Q,QAASvH,MAkBxD64B,EAAO46C,WAAWkG,aAAe,SAAUC,EAAYC,EAAYtuD,EAAQE,EAAQquD,EAAOC,GAStF,MAP0B,gBAAfH,KAA2BA,EAAa,GACzB,gBAAfC,KAA2BA,EAAa,GAC7B,gBAAXtuD,KAAuBA,EAAS,GACrB,gBAAXE,KAAuBA,EAAS,GACtB,gBAAVquD,KAAsBA,EAAQ,GACpB,gBAAVC,KAAsBA,EAAQ,IAEhC71C,GAAI3Y,EAAQ4Y,GAAI1Y,EAAQF,OAAQA,EAAQE,OAAQA,EAAQquD,MAAOA,EAAOC,MAAOA,EAAOH,WAAYA,EAAYC,WAAYA,EAAY39E,GAAI09E,EAAYz9E,GAAI09E,IAIrKhhD,EAAO46C,WAAWn5E,UAAUsB,YAAci9B,EAAO46C,WAwBjD56C,EAAO12B,OAAS,SAAUymC,EAAM5tC,EAAGC,EAAGme,EAAK5S,GAEvCxL,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTme,EAAMA,GAAO,KACb5S,EAAQA,GAAS,KAKjB/P,KAAKmyC,KAAOA,EAMZnyC,KAAKqd,KAAO,GAMZrd,KAAKiD,KAAOm/B,EAAOW,OAKnB/iC,KAAKolB,EAAI,EAKTplB,KAAK+gD,OAAS,GAAI3e,GAAOi4C,OAAOr6E,MAKhCA,KAAKujF,WAAa,GAAInhD,GAAOohD,iBAAiBxjF,MAK9CA,KAAK2iB,IAAMA,EAEX1iB,KAAKyL,OAAO3H,KAAK/D,KAAMC,KAAK+R,aAAwB,WAEpDhS,KAAK4H,kBAAoB5H,KAAKyjF,eAC9BzjF,KAAK6H,yBAA2B7H,KAEhCA,KAAK2H,SAAS2B,IAAI/E,EAAGC,GAKrBxE,KAAKoyC,MAAQ,GAAIhQ,GAAOn+B,MAAMM,EAAGC,GAUjCxE,KAAK0jF,UAAW,EAKhB1jF,KAAK8zC,MAAQ,KAab9zC,KAAKs0D,KAAO,KAMZt0D,KAAKggD,OAAQ,EAKbhgD,KAAK2jF,OAAS,EAQd3jF,KAAK4jF,SAAW,EAShB5jF,KAAK6jF,kBAAmB,EAMxB7jF,KAAK8jF,iBAAkB,EAMvB9jF,KAAK03C,OAAQ,EAKb13C,KAAKogD,aAAe,GAAIhe,GAAOn+B,MAM/BjE,KAAK+jF,SAAW,KAKhB/jF,KAAKgkF,SAAW,KAKhBhkF,KAAKikF,SAAW,KAiBhBjkF,KAAKwgD,QAAW,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAMrCxgD,KAAKkkF,MAAQ,KAMblkF,KAAKmkF,OAAS,KAMdnkF,KAAK8I,QAAU,GAAIs5B,GAAOl7B,UAE1BlH,KAAKs+E,YAAY37D,EAAK5S,IAI1BqyB,EAAO12B,OAAO7H,UAAYsF,OAAOkD,OAAOpM,KAAKyL,OAAO7H,WACpDu+B,EAAO12B,OAAO7H,UAAUsB,YAAci9B,EAAO12B,OAS7C02B,EAAO12B,OAAO7H,UAAUuzC,UAAY,WAEhC,GAAuB,IAAnBp3C,KAAKwgD,OAAO,IAAYxgD,KAAKw4C,OAgB7B,MAdAx4C,MAAKoyC,MAAM/K,MAAMrnC,KAAKqI,OAAOV,SAASpD,EAAIvE,KAAK2H,SAASpD,EAAGvE,KAAKqI,OAAOV,SAASnD,EAAIxE,KAAK2H,SAASnD,GAClGxE,KAAK0I,eAAejD,GAAKzF,KAAKoyC,MAAM7tC,EACpCvE,KAAK0I,eAAehD,GAAK1F,KAAKoyC,MAAM5tC,EACpCxE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,SAElB/H,KAAKs0D,MAELt0D,KAAKs0D,KAAKld,YAGdp3C,KAAKwgD,OAAO,GAAK,GAEV,CAOX,IAJAxgD,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,UAEjB/H,KAAKw4C,SAAWx4C,KAAKqI,OAAOmwC,OAI7B,MADAx4C,MAAKwgD,OAAO,GAAK,IACV,CAGX,IAAIxgD,KAAK4jF,SAAW,IAEhB5jF,KAAK4jF,UAAY5jF,KAAKmyC,KAAK+B,KAAK2hB,QAE5B71D,KAAK4jF,UAAY,GAGjB,MADA5jF,MAAKokF,QACE,CAgBf,KAXIpkF,KAAK0jF,UAAY1jF,KAAK6jF,mBAEtB7jF,KAAK8I,QAAQw+B,SAAStnC,KAAKuK,aAG3BvK,KAAK0jF,WAGL1jF,KAAKoI,WAAapI,KAAKmyC,KAAKC,MAAMwB,OAAOvB,WAAWlK,WAAWnoC,KAAK8I,UAGpE9I,KAAK6jF,iBAGL,GAAuB,IAAnB7jF,KAAKwgD,OAAO,IAAYxgD,KAAKmyC,KAAKC,MAAMvnC,OAAOs9B,WAAWnoC,KAAK8I,SAE/D9I,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAK+gD,OAAO25B,cAAc5hC,SAAS94C,UAElC,IAAuB,IAAnBA,KAAKwgD,OAAO,KAAaxgD,KAAKmyC,KAAKC,MAAMvnC,OAAOs9B,WAAWnoC,KAAK8I,WAGrE9I,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAK+gD,OAAO05B,cAAc3hC,SAAS94C,MAE/BA,KAAK8jF,iBAGL,MADA9jF,MAAKokF,QACE,CAKnBpkF,MAAKoyC,MAAM/K,MAAMrnC,KAAKmyC,KAAKyB,OAAOrvC,EAAIvE,KAAK0I,eAAejD,GAAIzF,KAAKmyC,KAAKyB,OAAOpvC,EAAIxE,KAAK0I,eAAehD,IAEnG1F,KAAKiI,UAELjI,KAAKwgD,OAAO,GAAKxgD,KAAKmyC,KAAK7pC,MAAMg1C,wBAGrCt9C,KAAKujF,WAAW/pE,SAEZxZ,KAAKs0D,MAELt0D,KAAKs0D,KAAKld,WAId,KAAK,GAAIjzC,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGizC,WAGrB,QAAO,GAWXhV,EAAO12B,OAAO7H,UAAU2V,OAAS,aAUjC4oB,EAAO12B,OAAO7H,UAAUu5C,WAAa,WAE7Bp9C,KAAK2iB,cAAeyf,GAAO46C,YAE3Bh9E,KAAK2iB,IAAI1X,SAGTjL,KAAKw4C,QAAUx4C,KAAKs0D,MAEpBt0D,KAAKs0D,KAAKlX,aAIS,IAAnBp9C,KAAKwgD,OAAO,KAEZxgD,KAAK2H,SAASpD,GAAKvE,KAAKmyC,KAAKyB,OAAOnxC,KAAK8B,EAAIvE,KAAKogD,aAAa77C,GAAKvE,KAAKmyC,KAAKyB,OAAOxtC,MAAM7B,EAC3FvE,KAAK2H,SAASnD,GAAKxE,KAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAIxE,KAAKogD,aAAa57C,GAAKxE,KAAKmyC,KAAKyB,OAAOxtC,MAAM5B,EAI/F,KAAK,GAAIL,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGi5C,cAezBhb,EAAO12B,OAAO7H,UAAUy6E,YAAc,SAAU37D,EAAK5S,EAAOs0E,GAExDt0E,EAAQA,GAAS,GAEbs0E,GAA0C,mBAAlBA,KAExBrkF,KAAKujF,WAAWv0E,OAGpBhP,KAAK2iB,IAAMA,CAEX,IAAIud,IAAW,EACXgxB,EAAWlxD,KAAKkxD,QAEhBvuC,aAAeyf,GAAOr3B,eAEtB/K,KAAK2iB,IAAMA,EAAIA,IACf3iB,KAAKgQ,WAAW2S,IAEXA,YAAeyf,GAAO46C,YAG3Bh9E,KAAKgQ,WAAW2S,EAAI9W,SAEhB7L,KAAKmyC,KAAK0B,MAAMywC,aAAa3hE,EAAIA,IAAKyf,EAAOwyB,MAAMhxB,cAEnD1D,GAAYlgC,KAAKujF,WAAWgB,cAAcvkF,KAAKmyC,KAAK0B,MAAMywC,aAAa3hE,EAAIA,IAAKyf,EAAOwyB,MAAMhxB,YAAa7zB,KAGzG4S,YAAe1iB,MAAKmS,QAEzBpS,KAAKgQ,WAAW2S,GAIJ,OAARA,GAA+B,mBAARA,IAEvB3iB,KAAK2iB,IAAM,YACX3iB,KAAKgQ,WAAW/P,KAAK+R,aAAahS,KAAK2iB,OAEnB,gBAARA,IAAqB3iB,KAAKmyC,KAAK0B,MAAM2wC,cAAc7hE,IAQ/D3iB,KAAKgQ,WAAW,GAAI/P,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,KAEvDud,GAAYlgC,KAAKujF,WAAWgB,cAAcvkF,KAAKmyC,KAAK0B,MAAMywC,aAAa3hE,GAAM5S,KAR7ExM,QAAQo0C,KAAK,qBAAuBh1B,EAAM,gBAC1C3iB,KAAK2iB,IAAM,YACX3iB,KAAKgQ,WAAW/P,KAAK+R,aAAahS,KAAK2iB,OAU/C3iB,KAAK6L,QAAQ6D,YAAYlG,QAErB02B,IAEAlgC,KAAKmkF,OAAS/hD,EAAOl7B,UAAUxC,MAAM1E,KAAK6L,QAAQkE,QAGjDmhD,IAEDlxD,KAAKkxD,UAAW,IAaxB9uB,EAAO12B,OAAO7H,UAAUq8B,SAAW,SAASnwB,GAExC/P,KAAKmkF,OAASp0E,EAEd/P,KAAK6L,QAAQkE,MAAMxL,EAAIwL,EAAMxL,EAC7BvE,KAAK6L,QAAQkE,MAAMvL,EAAIuL,EAAMvL,EAC7BxE,KAAK6L,QAAQkE,MAAM5I,MAAQ4I,EAAM5I,MACjCnH,KAAK6L,QAAQkE,MAAM3I,OAAS2I,EAAM3I,OAElCpH,KAAK6L,QAAQ+E,KAAKrM,EAAIwL,EAAMxL,EAC5BvE,KAAK6L,QAAQ+E,KAAKpM,EAAIuL,EAAMvL,EAC5BxE,KAAK6L,QAAQ+E,KAAKzJ,MAAQ4I,EAAM5I,MAChCnH,KAAK6L,QAAQ+E,KAAKxJ,OAAS2I,EAAM3I,OAE7B2I,EAAM00E,SAEFzkF,KAAK6L,QAAQ0F,MAEbvR,KAAK6L,QAAQ0F,KAAKhN,EAAIwL,EAAM20E,kBAC5B1kF,KAAK6L,QAAQ0F,KAAK/M,EAAIuL,EAAM40E,kBAC5B3kF,KAAK6L,QAAQ0F,KAAKpK,MAAQ4I,EAAM60E,YAChC5kF,KAAK6L,QAAQ0F,KAAKnK,OAAS2I,EAAM80E,aAIjC7kF,KAAK6L,QAAQ0F,MAAShN,EAAGwL,EAAM20E,kBAAmBlgF,EAAGuL,EAAM40E,kBAAmBx9E,MAAO4I,EAAM60E,YAAax9E,OAAQ2I,EAAM80E,aAG1H7kF,KAAK6L,QAAQ1E,MAAQ4I,EAAM60E,YAC3B5kF,KAAK6L,QAAQzE,OAAS2I,EAAM80E,YAC5B7kF,KAAK6L,QAAQkE,MAAM5I,MAAQ4I,EAAM60E,YACjC5kF,KAAK6L,QAAQkE,MAAM3I,OAAS2I,EAAM80E,cAE5B90E,EAAM00E,SAAWzkF,KAAK6L,QAAQ0F,OAEpCvR,KAAK6L,QAAQ0F,KAAO,MAGpBvR,KAAK+jF,UAEL/jF,KAAK8kF,aAGT9kF,KAAK6L,QAAQy0B,cAUjB8B,EAAO12B,OAAO7H,UAAUkhF,WAAa,WAE7B/kF,KAAKmkF,QAELnkF,KAAKkgC,SAASlgC,KAAKmkF,SAoB3B/hD,EAAO12B,OAAO7H,UAAU+M,KAAO,SAAS2qB,EAAMiL,GAEtB,mBAATA,KAAwBA,GAAO,GAEtCjL,GAEIiL,GAA0B,OAAlBxmC,KAAK+jF,SAEb/jF,KAAK+jF,SAAS18C,MAAM9L,EAAKh3B,EAAGg3B,EAAK/2B,EAAG+2B,EAAKp0B,MAAOo0B,EAAKn0B,QAIrDpH,KAAK+jF,SAFAv9C,GAA0B,OAAlBxmC,KAAK+jF,SAEF,GAAI3hD,GAAOl7B,UAAUq0B,EAAKh3B,EAAGg3B,EAAK/2B,EAAG+2B,EAAKp0B,MAAOo0B,EAAKn0B,QAItDm0B,EAGpBv7B,KAAK8kF,eAIL9kF,KAAKkkF,MAAQ,KACblkF,KAAK+jF,SAAW,KAEhB/jF,KAAK+kF,eAYb3iD,EAAO12B,OAAO7H,UAAUihF,WAAa,WAEjC,GAAK9kF,KAAK+jF,SAAV,CAKA/jF,KAAKkkF,MAAQ9hD,EAAOl7B,UAAUxC,MAAM1E,KAAK+jF,SAAU/jF,KAAKkkF,OACxDlkF,KAAKkkF,MAAM3/E,GAAKvE,KAAKmkF,OAAO5/E,EAC5BvE,KAAKkkF,MAAM1/E,GAAKxE,KAAKmkF,OAAO3/E,CAE5B,IAAIia,GAAKvc,KAAKgT,IAAIlV,KAAKmkF,OAAO5/E,EAAGvE,KAAKkkF,MAAM3/E,GACxCma,EAAKxc,KAAKgT,IAAIlV,KAAKmkF,OAAO3/E,EAAGxE,KAAKkkF,MAAM1/E,GACxCwgF,EAAK9iF,KAAK23B,IAAI75B,KAAKmkF,OAAOj+C,MAAOlmC,KAAKkkF,MAAMh+C,OAASznB,EACrDwmE,EAAK/iF,KAAK23B,IAAI75B,KAAKmkF,OAAOl8C,OAAQjoC,KAAKkkF,MAAMj8C,QAAUvpB,CAE3D1e,MAAK6L,QAAQ+E,KAAKrM,EAAIka,EACtBze,KAAK6L,QAAQ+E,KAAKpM,EAAIka,EACtB1e,KAAK6L,QAAQ+E,KAAKzJ,MAAQ69E,EAC1BhlF,KAAK6L,QAAQ+E,KAAKxJ,OAAS69E,EAE3BjlF,KAAK6L,QAAQkE,MAAM5I,MAAQjF,KAAK23B,IAAImrD,EAAIhlF,KAAK+jF,SAAS58E,OACtDnH,KAAK6L,QAAQkE,MAAM3I,OAASlF,KAAK23B,IAAIorD,EAAIjlF,KAAK+jF,SAAS38E,QAEvDpH,KAAK6L,QAAQ1E,MAAQnH,KAAK6L,QAAQkE,MAAM5I,MACxCnH,KAAK6L,QAAQzE,OAASpH,KAAK6L,QAAQkE,MAAM3I,OAEzCpH,KAAK6L,QAAQy0B,eAcjB8B,EAAO12B,OAAO7H,UAAUqhF,OAAS,SAASvB,GActC,MAZsB,mBAAXA,KAA0BA,EAAS,GAE9C3jF,KAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EACfjI,KAAK2jF,OAASA,EAEV3jF,KAAK+gD,QAEL/gD,KAAK+gD,OAAOy5B,UAAU1hC,SAAS94C,MAG5BA,MAcXoiC,EAAO12B,OAAO7H,UAAUugF,KAAO,WAW3B,MATApkF,MAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EAEXjI,KAAK+gD,QAEL/gD,KAAK+gD,OAAOw5B,SAASzhC,SAAS94C,MAG3BA,MAYXoiC,EAAO12B,OAAO7H,UAAUqI,QAAU,SAAS64C,GAEvC,GAAkB,OAAd/kD,KAAKmyC,MAAoC,IAAnBnyC,KAAKwgD,OAAO,GAAtC,CAE+B,mBAApBuE,KAAmCA,GAAkB,GAEhE/kD,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAK+gD,QAEL/gD,KAAK+gD,OAAOT,UAAUxH,SAAS94C,MAG/BA,KAAKqI,SAEDrI,KAAKqI,iBAAkB+5B,GAAOsd,MAE9B1/C,KAAKqI,OAAOwuC,OAAO72C,MAInBA,KAAKqI,OAAOuE,YAAY5M,OAI5BA,KAAK8zC,OAEL9zC,KAAK8zC,MAAM5nC,UAGXlM,KAAKujF,YAELvjF,KAAKujF,WAAWr3E,UAGhBlM,KAAKs0D,MAELt0D,KAAKs0D,KAAKpoD,UAGVlM,KAAK+gD,QAEL/gD,KAAK+gD,OAAO70C,SAGhB,IAAI/H,GAAInE,KAAKoM,SAAS/H,MAEtB,IAAI0gD,EAEA,KAAO5gD,KAEHnE,KAAKoM,SAASjI,GAAG+H,QAAQ64C,OAK7B,MAAO5gD,KAEHnE,KAAK4M,YAAY5M,KAAKoM,SAASjI,GAInCnE,MAAKkkF,QAELlkF,KAAKkkF,MAAQ,MAGblkF,KAAKmkF,SAELnkF,KAAKmkF,OAAS,MAGlBnkF,KAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EAEfjI,KAAKgM,QAAU,KACfhM,KAAKmP,KAAO,KACZnP,KAAKmyC,KAAO,KAEZnyC,KAAKwgD,OAAO,GAAK,IAarBpe,EAAO12B,OAAO7H,UAAUshF,OAAS,SAAS5nD,GAYtC,MAVIv9B,MAAKggD,QAELhgD,KAAK2jF,QAAUpmD,EAEXv9B,KAAK2jF,QAAU,GAEf3jF,KAAKokF,QAINpkF,MAgBXoiC,EAAO12B,OAAO7H,UAAUwkB,MAAQ,SAAS9jB,EAAGC,EAAGm/E,GAsB3C,MApBsB,mBAAXA,KAA0BA,EAAS,GAE9C3jF,KAAKoyC,MAAM/K,MAAM9iC,EAAGC,GACpBxE,KAAK2H,SAASpD,EAAIA,EAClBvE,KAAK2H,SAASnD,EAAIA,EAClBxE,KAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EACfjI,KAAKoI,YAAa,EAClBpI,KAAKolF,mBAAoB,EAEzBplF,KAAK2jF,OAASA,EAEV3jF,KAAKs0D,MAELt0D,KAAKs0D,KAAKjsC,MAAM9jB,EAAGC,GAAG,GAAO,GAGjCxE,KAAKwgD,OAAO,GAAK,EAEVxgD,MAYXoiC,EAAO12B,OAAO7H,UAAU89C,WAAa,WAOjC,MALI3hD,MAAKqI,QAELrI,KAAKqI,OAAOs5C,WAAW3hD,MAGpBA,MAgBXoiC,EAAO12B,OAAO7H,UAAUwhF,KAAO,SAAUhoE,EAAMioE,EAAWnK,EAAMoK,GAE5D,MAAIvlF,MAAKujF,WAEEvjF,KAAKujF,WAAW8B,KAAKhoE,EAAMioE,EAAWnK,EAAMoK,GAFvD,QAiBJnjD,EAAO12B,OAAO7H,UAAU2hF,QAAU,SAAUv1D,GAExC,MAAOmS,GAAOl7B,UAAUihC,WAAWnoC,KAAKuK,YAAa0lB,EAAc1lB,cAWvE63B,EAAO12B,OAAO7H,UAAU4/E,eAAiB,SAAUr5E,GAE3CpK,KAAKgkF,WAED55E,EAAG/E,EAAIrF,KAAKgkF,SAASz/E,IAErB6F,EAAG/E,EAAIrF,KAAKgkF,SAASz/E,GAGrB6F,EAAG5E,EAAIxF,KAAKgkF,SAASx/E,IAErB4F,EAAG5E,EAAIxF,KAAKgkF,SAASx/E,IAIzBxE,KAAKikF,WAED75E,EAAG/E,EAAIrF,KAAKikF,SAAS1/E,IAErB6F,EAAG/E,EAAIrF,KAAKikF,SAAS1/E,GAGrB6F,EAAG5E,EAAIxF,KAAKikF,SAASz/E,IAErB4F,EAAG5E,EAAIxF,KAAKikF,SAASz/E,KA4BjC49B,EAAO12B,OAAO7H,UAAU4hF,eAAiB,SAAUp3E,EAAME,EAAMC,EAAMC,GAE7C,mBAATF,GAGPA,EAAOC,EAAOC,EAAOJ,EAEA,mBAATG,KAGZA,EAAOC,EAAOF,EACdA,EAAOF,GAGE,OAATA,EAEArO,KAAKgkF,SAAW,KAIZhkF,KAAKgkF,SAELhkF,KAAKgkF,SAAS16E,IAAI+E,EAAME,GAIxBvO,KAAKgkF,SAAW,GAAI5hD,GAAOn+B,MAAMoK,EAAME,GAIlC,OAATC,EAEAxO,KAAKikF,SAAW,KAIZjkF,KAAKikF,SAELjkF,KAAKikF,SAAS36E,IAAIkF,EAAMC,GAIxBzO,KAAKikF,SAAW,GAAI7hD,GAAOn+B,MAAMuK,EAAMC,IAcnDtF,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,SAE3CwF,IAAK,WAED,MAAO+4B,GAAOlgC,KAAKwjF,UAAUtjD,EAAOlgC,KAAKqnC,SAASvpC,KAAK+H,YAI3DuB,IAAK,SAASC,GAEVvJ,KAAK+H,SAAWq6B,EAAOlgC,KAAKkmC,SAAShG,EAAOlgC,KAAKwjF,UAAUn8E,OAanEJ,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,UAE3CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM7tC,EAAIvE,KAAKwgD,OAAO,MAa1Cr3C,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,UAE3CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM5tC,EAAIxE,KAAKwgD,OAAO,MAa1Cr3C,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,UAE3CwF,IAAK,WAED,MAAOrJ,MAAK+H,SAAW/H,KAAKwgD,OAAO,MAa3Cr3C,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,WAE3CwF,IAAK,WAED,MAAOrJ,MAAKmyC,KAAKC,MAAMvnC,OAAOs9B,WAAWnoC,KAAKuK,gBAatDpB,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,YAE3CwF,IAAK,WAED,MAAOrJ,MAAKmyC,KAAKC,MAAMwB,OAAOvB,WAAWlK,WAAWnoC,KAAKuK,gBAUjEpB,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,SAE3CwF,IAAK,WACD,MAAOrJ,MAAKujF,WAAWxzE,OAG3BzG,IAAK,SAAUC,GACXvJ,KAAKujF,WAAWxzE,MAAQxG,KAShCJ,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,aAE3CwF,IAAK,WACD,MAAOrJ,MAAKujF,WAAWoC,WAG3Br8E,IAAK,SAAUC,GACXvJ,KAAKujF,WAAWoC,UAAYp8E,KAUpCJ,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,iBAE3CwF,IAAK,WAED,MAAOrJ,MAAKwgD,OAAO,MAa3Br3C,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,gBAE3CwF,IAAK,WAED,MAAQrJ,MAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAIrCttD,IAAK,SAAUC,GAEPA,EAEmB,OAAfvJ,KAAK8zC,OAEL9zC,KAAK8zC,MAAQ,GAAI1R,GAAO2yC,aAAa/0E,MACrCA,KAAK8zC,MAAM1kC,SAENpP,KAAK8zC,QAAU9zC,KAAK8zC,MAAM8iB,SAE/B52D,KAAK8zC,MAAM1kC,QAKXpP,KAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAEzB52D,KAAK8zC,MAAM9kC,UAgB3B7F,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,UAE3CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAGAvJ,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQ8lC,MAE/C5lF,KAAKs0D,KAAKrN,aAGdjnD,KAAKiI,SAAU,IAKfjI,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQ8lC,MAE/C5lF,KAAKs0D,KAAKuxB,kBAGd7lF,KAAKiI,SAAU,MAe3BkB,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,iBAE3CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAEAvJ,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAKogD,aAAa92C,IAAItJ,KAAKuE,EAAGvE,KAAKwE,IAInCxE,KAAKwgD,OAAO,GAAK,KAY7Br3C,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,YAE3CwF,IAAK,WAED,OAAQrJ,KAAK6L,QAAQ6D,YAAY/E,WAIrCrB,IAAK,SAAUC,GAEPA,EAEIvJ,KAAK6L,UAEL7L,KAAK6L,QAAQ6D,YAAY/E,UAAY,GAKrC3K,KAAK6L,UAEL7L,KAAK6L,QAAQ6D,YAAY/E,UAAY,MAarDxB,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,KAE3CwF,IAAK,WAED,MAAOrJ,MAAK2H,SAASpD,GAIzB+E,IAAK,SAAUC,GAEXvJ,KAAK2H,SAASpD,EAAIgF,EAEdvJ,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQC,QAA8B,IAApB//C,KAAKs0D,KAAKwxB,QAEnE9lF,KAAKs0D,KAAKyxB,OAAS,MAa/B58E,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,KAE3CwF,IAAK,WAED,MAAOrJ,MAAK2H,SAASnD,GAIzB8E,IAAK,SAAUC,GAEXvJ,KAAK2H,SAASnD,EAAI+E,EAEdvJ,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQC,QAA8B,IAApB//C,KAAKs0D,KAAKwxB,QAEnE9lF,KAAKs0D,KAAKyxB,OAAS,MAW/B58E,OAAOC,eAAeg5B,EAAO12B,OAAO7H,UAAW,gBAE3CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,MAyB7Bpe,EAAOjJ,MAAQ,SAAUgZ,EAAM5tC,EAAGC,EAAGme,EAAK5S,GAEtCxL,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTme,EAAMA,GAAO,KACb5S,EAAQA,GAAS,KAKjB/P,KAAKmyC,KAAOA,EAMZnyC,KAAKw4C,QAAS,EAMdx4C,KAAKqd,KAAO,GAMZrd,KAAKiD,KAAOm/B,EAAOa,MAKnBjjC,KAAKolB,EAAI,EAKTplB,KAAK+gD,OAAS,GAAI3e,GAAOi4C,OAAOr6E,MAKhCA,KAAKujF,WAAa,GAAInhD,GAAOohD,iBAAiBxjF,MAK9CA,KAAK2iB,IAAMA,EAEX1iB,KAAKyL,OAAO3H,KAAK/D,KAAMC,KAAK+R,aAAwB,WAEpDhS,KAAK4H,kBAAoB5H,KAAKyjF,eAC9BzjF,KAAK6H,yBAA2B7H,KAEhCA,KAAK2H,SAAS2B,IAAI/E,EAAGC,GAKrBxE,KAAKoyC,MAAQ,GAAIhQ,GAAOn+B,MAAMM,EAAGC,GAMjCxE,KAAKggD,OAAQ,EAUbhgD,KAAK0jF,UAAW,EAKhB1jF,KAAK8zC,MAAQ,KAMb9zC,KAAK03C,OAAQ,EAKb13C,KAAKogD,aAAe,GAAIhe,GAAOn+B,MAM/BjE,KAAK+jF,SAAW,KAgBhB/jF,KAAKwgD,QAAW,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAMxCxgD,KAAKkkF,MAAQ,KAMblkF,KAAKmkF,OAAS,KAMdnkF,KAAK8I,QAAU,GAAIs5B,GAAOl7B,UAE1BlH,KAAKs+E,YAAY37D,EAAK5S,IAI1BqyB,EAAOjJ,MAAMt1B,UAAYsF,OAAOkD,OAAOpM,KAAKyL,OAAO7H,WACnDu+B,EAAOjJ,MAAMt1B,UAAUsB,YAAci9B,EAAOjJ,MAQ5CiJ,EAAOjJ,MAAMt1B,UAAUuzC,UAAY,WAM/B,GAJAp3C,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,UAEjB/H,KAAKw4C,SAAWx4C,KAAKqI,OAAOmwC,OAG7B,MADAx4C,MAAKwgD,OAAO,GAAK,IACV,CAGPxgD,MAAK0jF,WAEL1jF,KAAK8I,QAAQw+B,SAAStnC,KAAKuK,aAG3BvK,KAAKoI,WAAapI,KAAKmyC,KAAKC,MAAMwB,OAAOvB,WAAWlK,WAAWnoC,KAAK8I,UAGxE9I,KAAKoyC,MAAM/K,MAAMrnC,KAAKmyC,KAAKyB,OAAOrvC,EAAIvE,KAAK0I,eAAejD,GAAIzF,KAAKmyC,KAAKyB,OAAOpvC,EAAIxE,KAAK0I,eAAehD,IAEnG1F,KAAKiI,UAELjI,KAAKwgD,OAAO,GAAKxgD,KAAKmyC,KAAK7pC,MAAMg1C,uBAIrC,KAAK,GAAIn5C,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGizC,WAGrB,QAAO,GAUXhV,EAAOjJ,MAAMt1B,UAAU2V,OAAS,aAUhC4oB,EAAOjJ,MAAMt1B,UAAUu5C,WAAa,WAE5Bp9C,KAAK2iB,cAAeyf,GAAO46C,YAE3Bh9E,KAAK2iB,IAAI1X,SAIU,IAAnBjL,KAAKwgD,OAAO,KAEZxgD,KAAK2H,SAASpD,GAAKvE,KAAKmyC,KAAKyB,OAAOnxC,KAAK8B,EAAIvE,KAAKogD,aAAa77C,GAAKvE,KAAKmyC,KAAKyB,OAAOxtC,MAAM7B,EAC3FvE,KAAK2H,SAASnD,GAAKxE,KAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAIxE,KAAKogD,aAAa57C,GAAKxE,KAAKmyC,KAAKyB,OAAOxtC,MAAM5B,EAI/F,KAAK,GAAIL,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGi5C,cAczBhb,EAAOjJ,MAAMt1B,UAAUy6E,YAAc,SAAU37D,EAAK5S,GAEhDA,EAAQA,GAAS,EAEjB/P,KAAK2iB,IAAMA,CAEX,IAAIud,IAAW,EACXgxB,EAAWlxD,KAAKkxD,QAEhBvuC,aAAeyf,GAAOr3B,eAEtB/K,KAAK2iB,IAAMA,EAAIA,IACf3iB,KAAKgQ,WAAW2S,IAEXA,YAAeyf,GAAO46C,YAG3Bh9E,KAAKgQ,WAAW2S,EAAI9W,SAEhB7L,KAAKmyC,KAAK0B,MAAMywC,aAAa3hE,EAAIA,IAAKyf,EAAOwyB,MAAMhxB,cAEnD1D,GAAYlgC,KAAKujF,WAAWgB,cAAcvkF,KAAKmyC,KAAK0B,MAAMywC,aAAa3hE,EAAIA,IAAKyf,EAAOwyB,MAAMhxB,YAAa7zB,KAGzG4S,YAAe1iB,MAAKmS,QAEzBpS,KAAKgQ,WAAW2S,GAIJ,OAARA,GAA+B,mBAARA,IAEvB3iB,KAAK2iB,IAAM,YACX3iB,KAAKgQ,WAAW/P,KAAK+R,aAAahS,KAAK2iB,OAEnB,gBAARA,IAAqB3iB,KAAKmyC,KAAK0B,MAAM2wC,cAAc7hE,IAQ/D3iB,KAAKgQ,WAAW,GAAI/P,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,KAEvDud,GAAYlgC,KAAKujF,WAAWgB,cAAcvkF,KAAKmyC,KAAK0B,MAAMywC,aAAa3hE,GAAM5S,KAR7ExM,QAAQo0C,KAAK,qBAAuBh1B,EAAM,gBAC1C3iB,KAAK2iB,IAAM,YACX3iB,KAAKgQ,WAAW/P,KAAK+R,aAAahS,KAAK2iB,OAU/C3iB,KAAK6L,QAAQ6D,YAAYlG,QAErB02B,IAEAlgC,KAAKmkF,OAAS/hD,EAAOl7B,UAAUxC,MAAM1E,KAAK6L,QAAQkE,QAGjDmhD,IAEDlxD,KAAKkxD,UAAW,IAaxB9uB,EAAOjJ,MAAMt1B,UAAUq8B,SAAW,SAASnwB,GAEvC/P,KAAKmkF,OAASp0E,EAEd/P,KAAK6L,QAAQkE,MAAMxL,EAAIwL,EAAMxL,EAC7BvE,KAAK6L,QAAQkE,MAAMvL,EAAIuL,EAAMvL,EAC7BxE,KAAK6L,QAAQkE,MAAM5I,MAAQ4I,EAAM5I,MACjCnH,KAAK6L,QAAQkE,MAAM3I,OAAS2I,EAAM3I,OAElCpH,KAAK6L,QAAQ+E,KAAKrM,EAAIwL,EAAMxL,EAC5BvE,KAAK6L,QAAQ+E,KAAKpM,EAAIuL,EAAMvL,EAC5BxE,KAAK6L,QAAQ+E,KAAKzJ,MAAQ4I,EAAM5I,MAChCnH,KAAK6L,QAAQ+E,KAAKxJ,OAAS2I,EAAM3I,OAE7B2I,EAAM00E,SAEFzkF,KAAK6L,QAAQ0F,MAEbvR,KAAK6L,QAAQ0F,KAAKhN,EAAIwL,EAAM20E,kBAC5B1kF,KAAK6L,QAAQ0F,KAAK/M,EAAIuL,EAAM40E,kBAC5B3kF,KAAK6L,QAAQ0F,KAAKpK,MAAQ4I,EAAM60E,YAChC5kF,KAAK6L,QAAQ0F,KAAKnK,OAAS2I,EAAM80E,aAIjC7kF,KAAK6L,QAAQ0F,MAAShN,EAAGwL,EAAM20E,kBAAmBlgF,EAAGuL,EAAM40E,kBAAmBx9E,MAAO4I,EAAM60E,YAAax9E,OAAQ2I,EAAM80E,aAG1H7kF,KAAK6L,QAAQ1E,MAAQ4I,EAAM60E,YAC3B5kF,KAAK6L,QAAQzE,OAAS2I,EAAM80E,YAC5B7kF,KAAK6L,QAAQkE,MAAM5I,MAAQ4I,EAAM60E,YACjC5kF,KAAK6L,QAAQkE,MAAM3I,OAAS2I,EAAM80E,cAE5B90E,EAAM00E,SAAWzkF,KAAK6L,QAAQ0F,OAEpCvR,KAAK6L,QAAQ0F,KAAO,MAGpBvR,KAAK+jF,UAEL/jF,KAAK8kF,aAGT9kF,KAAK6L,QAAQy0B,cAUjB8B,EAAOjJ,MAAMt1B,UAAUkhF,WAAa,WAE5B/kF,KAAKmkF,QAELnkF,KAAKkgC,SAASlgC,KAAKmkF,SAiB3B/hD,EAAOjJ,MAAMt1B,UAAU+M,KAAO,SAAS2qB,EAAMiL,GAErB,mBAATA,KAAwBA,GAAO,GAEtCjL,GAEIiL,GAA0B,OAAlBxmC,KAAK+jF,SAEb/jF,KAAK+jF,SAAS18C,MAAM9L,EAAKh3B,EAAGg3B,EAAK/2B,EAAG+2B,EAAKp0B,MAAOo0B,EAAKn0B,QAIrDpH,KAAK+jF,SAFAv9C,GAA0B,OAAlBxmC,KAAK+jF,SAEF,GAAI3hD,GAAOl7B,UAAUq0B,EAAKh3B,EAAGg3B,EAAK/2B,EAAG+2B,EAAKp0B,MAAOo0B,EAAKn0B,QAItDm0B,EAGpBv7B,KAAK8kF,eAIL9kF,KAAKkkF,MAAQ,KACblkF,KAAK+jF,SAAW,KAEhB/jF,KAAK+kF,eAYb3iD,EAAOjJ,MAAMt1B,UAAUihF,WAAa,WAEhC,GAAK9kF,KAAK+jF,SAAV,CAKA/jF,KAAKkkF,MAAQ9hD,EAAOl7B,UAAUxC,MAAM1E,KAAK+jF,SAAU/jF,KAAKkkF,OACxDlkF,KAAKkkF,MAAM3/E,GAAKvE,KAAKmkF,OAAO5/E,EAC5BvE,KAAKkkF,MAAM1/E,GAAKxE,KAAKmkF,OAAO3/E,CAE5B,IAAIia,GAAKvc,KAAKgT,IAAIlV,KAAKmkF,OAAO5/E,EAAGvE,KAAKkkF,MAAM3/E,GACxCma,EAAKxc,KAAKgT,IAAIlV,KAAKmkF,OAAO3/E,EAAGxE,KAAKkkF,MAAM1/E,GACxCwgF,EAAK9iF,KAAK23B,IAAI75B,KAAKmkF,OAAOj+C,MAAOlmC,KAAKkkF,MAAMh+C,OAASznB,EACrDwmE,EAAK/iF,KAAK23B,IAAI75B,KAAKmkF,OAAOl8C,OAAQjoC,KAAKkkF,MAAMj8C,QAAUvpB,CAE3D1e,MAAK6L,QAAQ+E,KAAKrM,EAAIka,EACtBze,KAAK6L,QAAQ+E,KAAKpM,EAAIka,EACtB1e,KAAK6L,QAAQ+E,KAAKzJ,MAAQ69E,EAC1BhlF,KAAK6L,QAAQ+E,KAAKxJ,OAAS69E,EAE3BjlF,KAAK6L,QAAQkE,MAAM5I,MAAQjF,KAAK23B,IAAImrD,EAAIhlF,KAAK+jF,SAAS58E,OACtDnH,KAAK6L,QAAQkE,MAAM3I,OAASlF,KAAK23B,IAAIorD,EAAIjlF,KAAK+jF,SAAS38E,QAEvDpH,KAAK6L,QAAQ1E,MAAQnH,KAAK6L,QAAQkE,MAAM5I,MACxCnH,KAAK6L,QAAQzE,OAASpH,KAAK6L,QAAQkE,MAAM3I,OAEzCpH,KAAK6L,QAAQy0B,eAajB8B,EAAOjJ,MAAMt1B,UAAUqhF,OAAS,WAW5B,MATAllF,MAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EAEXjI,KAAK+gD,QAEL/gD,KAAK+gD,OAAOy5B,UAAU1hC,SAAS94C,MAG5BA,MAcXoiC,EAAOjJ,MAAMt1B,UAAUugF,KAAO,WAW1B,MATApkF,MAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EAEXjI,KAAK+gD,QAEL/gD,KAAK+gD,OAAOw5B,SAASzhC,SAAS94C,MAG3BA,MAYXoiC,EAAOjJ,MAAMt1B,UAAUqI,QAAU,SAAS64C,GAEtC,GAAkB,OAAd/kD,KAAKmyC,OAAiBnyC,KAAK6kD,aAA/B,CAE+B,mBAApBE,KAAmCA,GAAkB,GAEhE/kD,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAK+gD,QAEL/gD,KAAK+gD,OAAOT,UAAUxH,SAAS94C,MAG/BA,KAAKqI,SAEDrI,KAAKqI,iBAAkB+5B,GAAOsd,MAE9B1/C,KAAKqI,OAAOwuC,OAAO72C,MAInBA,KAAKqI,OAAOuE,YAAY5M,OAI5BA,KAAK+gD,QAEL/gD,KAAK+gD,OAAO70C,UAGZlM,KAAK8zC,OAEL9zC,KAAK8zC,MAAM5nC,UAGXlM,KAAKujF,YAELvjF,KAAKujF,WAAWr3E,SAGpB,IAAI/H,GAAInE,KAAKoM,SAAS/H,MAEtB,IAAI0gD,EAEA,KAAO5gD,KAEHnE,KAAKoM,SAASjI,GAAG+H,QAAQ64C,OAK7B,MAAO5gD,KAEHnE,KAAK4M,YAAY5M,KAAKoM,SAASjI,GAIvCnE,MAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EAEfjI,KAAKgM,QAAU,KACfhM,KAAKmP,KAAO,KACZnP,KAAKmyC,KAAO,KAEZnyC,KAAKwgD,OAAO,GAAK,IAarBpe,EAAOjJ,MAAMt1B,UAAUwkB,MAAQ,SAAS9jB,EAAGC,GAUvC,MARAxE,MAAKoyC,MAAM/K,MAAM9iC,EAAGC,GACpBxE,KAAK2H,SAASpD,EAAIA,EAClBvE,KAAK2H,SAASnD,EAAIA,EAClBxE,KAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EACfjI,KAAKoI,YAAa,EAEXpI,MAYXoiC,EAAOjJ,MAAMt1B,UAAU89C,WAAa,WAOhC,MALI3hD,MAAKqI,QAELrI,KAAKqI,OAAOs5C,WAAW3hD,MAGpBA,MAWXoiC,EAAOjJ,MAAMt1B,UAAU4/E,eAAiB,SAAUr5E,GAE1CpK,KAAKgkF,WAED55E,EAAG/E,EAAIrF,KAAKgkF,SAASz/E,IAErB6F,EAAG/E,EAAIrF,KAAKgkF,SAASz/E,GAGrB6F,EAAG5E,EAAIxF,KAAKgkF,SAASx/E,IAErB4F,EAAG5E,EAAIxF,KAAKgkF,SAASx/E,IAIzBxE,KAAKikF,WAED75E,EAAG/E,EAAIrF,KAAKikF,SAAS1/E,IAErB6F,EAAG/E,EAAIrF,KAAKikF,SAAS1/E,GAGrB6F,EAAG5E,EAAIxF,KAAKikF,SAASz/E,IAErB4F,EAAG5E,EAAIxF,KAAKikF,SAASz/E,KA6BjC49B,EAAOjJ,MAAMt1B,UAAU4hF,eAAiB,SAAUp3E,EAAME,EAAMC,EAAMC,GAE5C,mBAATF,GAGPA,EAAOC,EAAOC,EAAOJ,EAEA,mBAATG,KAGZA,EAAOC,EAAOF,EACdA,EAAOF,GAGE,OAATA,EAEArO,KAAKgkF,SAAW,KAIZhkF,KAAKgkF,SAELhkF,KAAKgkF,SAAS16E,IAAI+E,EAAME,GAIxBvO,KAAKgkF,SAAW,GAAI5hD,GAAOn+B,MAAMoK,EAAME,GAIlC,OAATC,EAEAxO,KAAKikF,SAAW,KAIZjkF,KAAKikF,SAELjkF,KAAKikF,SAAS36E,IAAIkF,EAAMC,GAIxBzO,KAAKikF,SAAW,GAAI7hD,GAAOn+B,MAAMuK,EAAMC,IAcnDtF,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,SAE1CwF,IAAK,WAED,MAAO+4B,GAAOlgC,KAAKwjF,UAAUtjD,EAAOlgC,KAAKqnC,SAASvpC,KAAK+H,YAI3DuB,IAAK,SAASC,GAEVvJ,KAAK+H,SAAWq6B,EAAOlgC,KAAKkmC,SAAShG,EAAOlgC,KAAKwjF,UAAUn8E,OAanEJ,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,UAE1CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM7tC,EAAIvE,KAAKwgD,OAAO,MAa1Cr3C,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,UAE1CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM5tC,EAAIxE,KAAKwgD,OAAO,MAa1Cr3C,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,UAE1CwF,IAAK,WAED,MAAOrJ,MAAK+H,SAAW/H,KAAKwgD,OAAO,MAa3Cr3C,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,WAE1CwF,IAAK,WAED,MAAOrJ,MAAKmyC,KAAKC,MAAMvnC,OAAOs9B,WAAWnoC,KAAKuK,gBAatDpB,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,YAE1CwF,IAAK,WAED,MAAOrJ,MAAKmyC,KAAKC,MAAMwB,OAAOvB,WAAWlK,WAAWnoC,KAAKuK,gBAUjEpB,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,SAE1CwF,IAAK,WAED,MAAOrJ,MAAKmkF,QAIhB76E,IAAK,SAASC,GAEV,GAAIA,IAAUvJ,KAAK+P,MACnB,CACI,GAAIi2E,GAAYhmF,KAAKmyC,KAAK0B,MAAMywC,aAAatkF,KAAK2iB,IAE9CqjE,IAAaz8E,EAAQy8E,EAAUxoD,OAASwoD,EAAUC,SAAS18E,KAE3DvJ,KAAKgQ,WAAW/P,KAAK+R,aAAag0E,EAAUC,SAAS18E,GAAOq+C,OAC5D5nD,KAAKmkF,OAAS56E,OAY9BJ,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,aAE1CwF,IAAK,WAED,MAAOrJ,MAAKkmF,YAIhB58E,IAAK,SAASC,GAEV,GAAIA,IAAUvJ,KAAK2lF,UACnB,CACI,GAAIK,GAAYhmF,KAAKmyC,KAAK0B,MAAMywC,aAAatkF,KAAK2iB,IAE9CqjE,IAAaA,EAAUG,eAAe58E,KAEtCvJ,KAAKgQ,WAAW/P,KAAK+R,aAAag0E,EAAUG,eAAe58E,GAAOq+C,OAClE5nD,KAAKkmF,WAAa38E,OAalCJ,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,iBAE1CwF,IAAK,WAED,MAAOrJ,MAAKwgD,OAAO,MAa3Br3C,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,gBAE1CwF,IAAK,WAED,MAAQrJ,MAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAIrCttD,IAAK,SAAUC,GAEPA,EAEmB,OAAfvJ,KAAK8zC,OAEL9zC,KAAK8zC,MAAQ,GAAI1R,GAAO2yC,aAAa/0E,MACrCA,KAAK8zC,MAAM1kC,SAENpP,KAAK8zC,QAAU9zC,KAAK8zC,MAAM8iB,SAE/B52D,KAAK8zC,MAAM1kC,QAKXpP,KAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAEzB52D,KAAK8zC,MAAM9kC,UAe3B7F,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,iBAE1CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAEAvJ,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAKogD,aAAa92C,IAAItJ,KAAKuE,EAAGvE,KAAKwE,IAInCxE,KAAKwgD,OAAO,GAAK,KAY7Br3C,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,YAE1CwF,IAAK,WAED,OAAQrJ,KAAK6L,QAAQ6D,YAAY/E,WAIrCrB,IAAK,SAAUC,GAEPA,EAEIvJ,KAAK6L,UAEL7L,KAAK6L,QAAQ6D,YAAY/E,UAAY,GAKrC3K,KAAK6L,UAEL7L,KAAK6L,QAAQ6D,YAAY/E,UAAY,MAWrDxB,OAAOC,eAAeg5B,EAAOjJ,MAAMt1B,UAAW,gBAE1CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,MA2B7Bpe,EAAOk5B,WAAa,SAAUnpB,EAAM5tC,EAAGC,EAAG2C,EAAOC,EAAQub,EAAK5S,GAE1DxL,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT2C,EAAQA,GAAS,IACjBC,EAASA,GAAU,IACnBub,EAAMA,GAAO,KACb5S,EAAQA,GAAS,KAKjB/P,KAAKmyC,KAAOA,EAMZnyC,KAAKqd,KAAO,GAMZrd,KAAKiD,KAAOm/B,EAAOgB,WAKnBpjC,KAAKolB,EAAI,EAKTplB,KAAK+gD,OAAS,GAAI3e,GAAOi4C,OAAOr6E,MAKhCA,KAAKujF,WAAa,GAAInhD,GAAOohD,iBAAiBxjF,MAK9CA,KAAK2iB,IAAMA,EAMX3iB,KAAKmkF,OAAS,EAMdnkF,KAAKkmF,WAAa,GAMlBlmF,KAAKomF,QAAU,GAAIhkD,GAAOn+B,MAE1BhE,KAAK69B,aAAa/5B,KAAK/D,KAAMC,KAAK+R,aAAwB,UAAG7K,EAAOC,GAEpEpH,KAAK2H,SAAS2B,IAAI/E,EAAGC,GAKrBxE,KAAK8zC,MAAQ,KAKb9zC,KAAKoyC,MAAQ,GAAIhQ,GAAOn+B,MAAMM,EAAGC,GAUjCxE,KAAK0jF,UAAW,EAShB1jF,KAAK6jF,kBAAmB,EAKxB7jF,KAAKogD,aAAe,GAAIhe,GAAOn+B,MAa/BjE,KAAKs0D,KAAO,KAMZt0D,KAAKggD,OAAQ,EAgBbhgD,KAAKwgD,QAAW,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAExCxgD,KAAKs+E,YAAY37D,EAAK5S,IAI1BqyB,EAAOk5B,WAAWz3D,UAAYsF,OAAOkD,OAAOpM,KAAK69B,aAAaj6B,WAC9Du+B,EAAOk5B,WAAWz3D,UAAUsB,YAAci9B,EAAOk5B,WAQjDl5B,EAAOk5B,WAAWz3D,UAAUuzC,UAAY,WAEpC,GAAuB,IAAnBp3C,KAAKwgD,OAAO,IAAYxgD,KAAKw4C,OAgB7B,MAdAx4C,MAAKoyC,MAAM/K,MAAMrnC,KAAKqI,OAAOV,SAASpD,EAAIvE,KAAK2H,SAASpD,EAAGvE,KAAKqI,OAAOV,SAASnD,EAAIxE,KAAK2H,SAASnD,GAClGxE,KAAK0I,eAAejD,GAAKzF,KAAKoyC,MAAM7tC,EACpCvE,KAAK0I,eAAehD,GAAK1F,KAAKoyC,MAAM5tC,EACpCxE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,SAElB/H,KAAKs0D,MAELt0D,KAAKs0D,KAAKld,YAGdp3C,KAAKwgD,OAAO,GAAK,GAEV,CAOX,IAJAxgD,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,UAEjB/H,KAAKw4C,SAAWx4C,KAAKqI,OAAOmwC,OAI7B,MADAx4C,MAAKwgD,OAAO,GAAK,IACV,GAIPxgD,KAAK0jF,UAAY1jF,KAAK6jF,mBAEtB7jF,KAAK8I,QAAQw+B,SAAStnC,KAAKuK,aAG3BvK,KAAK0jF,WAGL1jF,KAAKoI,WAAapI,KAAKmyC,KAAKC,MAAMwB,OAAOvB,WAAWlK,WAAWnoC,KAAK8I,UAGpE9I,KAAK6jF,mBAGkB,IAAnB7jF,KAAKwgD,OAAO,IAAYxgD,KAAKmyC,KAAKC,MAAMvnC,OAAOs9B,WAAWnoC,KAAK8I,UAE/D9I,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAK+gD,OAAO25B,cAAc5hC,SAAS94C,OAEX,IAAnBA,KAAKwgD,OAAO,IAAaxgD,KAAKmyC,KAAKC,MAAMvnC,OAAOs9B,WAAWnoC,KAAK8I,WAGrE9I,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAK+gD,OAAO05B,cAAc3hC,SAAS94C,QAI3CA,KAAKoyC,MAAM/K,MAAMrnC,KAAKmyC,KAAKyB,OAAOrvC,EAAIvE,KAAK0I,eAAejD,GAAIzF,KAAKmyC,KAAKyB,OAAOpvC,EAAIxE,KAAK0I,eAAehD,IAEnG1F,KAAKiI,UAELjI,KAAKwgD,OAAO,GAAKxgD,KAAKmyC,KAAK7pC,MAAMg1C,wBAGrCt9C,KAAKujF,WAAW/pE,SAEO,IAAnBxZ,KAAKomF,QAAQ7hF,IAEbvE,KAAK00B,aAAanwB,GAAKvE,KAAKomF,QAAQ7hF,EAAIvE,KAAKmyC,KAAK+B,KAAKmyC,gBAGpC,IAAnBrmF,KAAKomF,QAAQ5hF,IAEbxE,KAAK00B,aAAalwB,GAAKxE,KAAKomF,QAAQ5hF,EAAIxE,KAAKmyC,KAAK+B,KAAKmyC,gBAGvDrmF,KAAKs0D,MAELt0D,KAAKs0D,KAAKld,WAId;IAAK,GAAIjzC,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGizC,WAGrB,QAAO,GAUXhV,EAAOk5B,WAAWz3D,UAAU2V,OAAS,aAUrC4oB,EAAOk5B,WAAWz3D,UAAUu5C,WAAa,WAEjCp9C,KAAKw4C,QAAUx4C,KAAKs0D,MAEpBt0D,KAAKs0D,KAAKlX,aAIS,IAAnBp9C,KAAKwgD,OAAO,KAEZxgD,KAAK2H,SAASpD,EAAIvE,KAAKmyC,KAAKyB,OAAOnxC,KAAK8B,EAAIvE,KAAKogD,aAAa77C,EAC9DvE,KAAK2H,SAASnD,EAAIxE,KAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAIxE,KAAKogD,aAAa57C,EAIlE,KAAK,GAAIL,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGi5C,cAgBzBhb,EAAOk5B,WAAWz3D,UAAUyiF,WAAa,SAAS/hF,EAAGC,GAEjDxE,KAAKomF,QAAQ98E,IAAI/E,EAAGC,IAUxB49B,EAAOk5B,WAAWz3D,UAAU0iF,WAAa,WAErCvmF,KAAKomF,QAAQ98E,IAAI,EAAG,IAaxB84B,EAAOk5B,WAAWz3D,UAAUy6E,YAAc,SAAU37D,EAAK5S,GAErDA,EAAQA,GAAS,EAEjB/P,KAAK2iB,IAAMA,EAEPA,YAAeyf,GAAOr3B,eAEtB/K,KAAK2iB,IAAMA,EAAIA,IACf3iB,KAAKgQ,WAAW2S,IAEXA,YAAeyf,GAAO46C,WAE3Bh9E,KAAKgQ,WAAW2S,EAAI9W,SAEf8W,YAAe1iB,MAAKmS,QAEzBpS,KAAKgQ,WAAW2S,GAIJ,OAARA,GAA+B,mBAARA,IAEvB3iB,KAAK2iB,IAAM,YACX3iB,KAAKgQ,WAAW/P,KAAK+R,aAAahS,KAAK2iB,OAEnB,gBAARA,IAAqB3iB,KAAKmyC,KAAK0B,MAAM2wC,cAAc7hE,IAQ/D3iB,KAAKgQ,WAAW,GAAI/P,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,KACvD3iB,KAAKujF,WAAWgB,cAAcvkF,KAAKmyC,KAAK0B,MAAMywC,aAAa3hE,GAAM5S,KAPjExM,QAAQo0C,KAAK,qBAAuBh1B,EAAM,gBAC1C3iB,KAAK2iB,IAAM,YACX3iB,KAAKgQ,WAAW/P,KAAK+R,aAAahS,KAAK2iB,OAS/C3iB,KAAK6L,QAAQ6D,YAAYlG,SAY7B44B,EAAOk5B,WAAWz3D,UAAUq8B,SAAW,SAASnwB,GAE5C/P,KAAK6L,QAAQkE,MAAMxL,EAAIwL,EAAMxL,EAC7BvE,KAAK6L,QAAQkE,MAAMvL,EAAIuL,EAAMvL,EAC7BxE,KAAK6L,QAAQkE,MAAM5I,MAAQ4I,EAAM5I,MACjCnH,KAAK6L,QAAQkE,MAAM3I,OAAS2I,EAAM3I,OAElCpH,KAAK6L,QAAQ+E,KAAKrM,EAAIwL,EAAMxL,EAC5BvE,KAAK6L,QAAQ+E,KAAKpM,EAAIuL,EAAMvL,EAC5BxE,KAAK6L,QAAQ+E,KAAKzJ,MAAQ4I,EAAM5I,MAChCnH,KAAK6L,QAAQ+E,KAAKxJ,OAAS2I,EAAM3I,OAE7B2I,EAAM00E,SAEFzkF,KAAK6L,QAAQ0F,MAEbvR,KAAK6L,QAAQ0F,KAAKhN,EAAIwL,EAAM20E,kBAC5B1kF,KAAK6L,QAAQ0F,KAAK/M,EAAIuL,EAAM40E,kBAC5B3kF,KAAK6L,QAAQ0F,KAAKpK,MAAQ4I,EAAM60E,YAChC5kF,KAAK6L,QAAQ0F,KAAKnK,OAAS2I,EAAM80E,aAIjC7kF,KAAK6L,QAAQ0F,MAAShN,EAAGwL,EAAM20E,kBAAmBlgF,EAAGuL,EAAM40E,kBAAmBx9E,MAAO4I,EAAM60E,YAAax9E,OAAQ2I,EAAM80E,aAG1H7kF,KAAK6L,QAAQ1E,MAAQ4I,EAAM60E,YAC3B5kF,KAAK6L,QAAQzE,OAAS2I,EAAM80E,YAC5B7kF,KAAK6L,QAAQkE,MAAM5I,MAAQ4I,EAAM60E,YACjC5kF,KAAK6L,QAAQkE,MAAM3I,OAAS2I,EAAM80E,cAE5B90E,EAAM00E,SAAWzkF,KAAK6L,QAAQ0F,OAEpCvR,KAAK6L,QAAQ0F,KAAO,MAGxBvR,KAAK6L,QAAQy0B,cAYjB8B,EAAOk5B,WAAWz3D,UAAUqI,QAAU,SAAS64C,GAE3C,GAAkB,OAAd/kD,KAAKmyC,OAAiBnyC,KAAK6kD,aAA/B,CAE+B,mBAApBE,KAAmCA,GAAkB,GAEhE/kD,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAK+gD,QAEL/gD,KAAK+gD,OAAOT,UAAUxH,SAAS94C,MAG/BA,KAAKgM,UAELhM,KAAKgM,QAAU,MAGfhM,KAAKqI,SAEDrI,KAAKqI,iBAAkB+5B,GAAOsd,MAE9B1/C,KAAKqI,OAAOwuC,OAAO72C,MAInBA,KAAKqI,OAAOuE,YAAY5M,OAIhCA,KAAKujF,WAAWr3E,UAEhBlM,KAAK+gD,OAAO70C,SAEZ,IAAI/H,GAAInE,KAAKoM,SAAS/H,MAEtB,IAAI0gD,EAEA,KAAO5gD,KAEHnE,KAAKoM,SAASjI,GAAG+H,QAAQ64C,OAK7B,MAAO5gD,KAEHnE,KAAK4M,YAAY5M,KAAKoM,SAASjI,GAIvCnE,MAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EACfjI,KAAKggD,OAAQ,EAEbhgD,KAAKgM,QAAU,KACfhM,KAAKmP,KAAO,KACZnP,KAAKmyC,KAAO,KAEZnyC,KAAKwgD,OAAO,GAAK,IAgBrBpe,EAAOk5B,WAAWz3D,UAAUwhF,KAAO,SAAUhoE,EAAMioE,EAAWnK,EAAMoK,GAEhE,MAAOvlF,MAAKujF,WAAW8B,KAAKhoE,EAAMioE,EAAWnK,EAAMoK,IAevDnjD,EAAOk5B,WAAWz3D,UAAUwkB,MAAQ,SAAS9jB,EAAGC,GAqB5C,MAnBAxE,MAAKoyC,MAAM/K,MAAM9iC,EAAGC,GACpBxE,KAAK2H,SAASpD,EAAIA,EAClBvE,KAAK2H,SAASnD,EAAIA,EAClBxE,KAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EACfjI,KAAKoI,YAAa,EAClBpI,KAAKolF,mBAAoB,EAEzBplF,KAAK00B,aAAanwB,EAAI,EACtBvE,KAAK00B,aAAalwB,EAAI,EAElBxE,KAAKs0D,MAELt0D,KAAKs0D,KAAKjsC,MAAM9jB,EAAGC,GAAG,GAAO,GAGjCxE,KAAKwgD,OAAO,GAAK,EAEVxgD,MAYXmJ,OAAOC,eAAeg5B,EAAOk5B,WAAWz3D,UAAW,SAE/CwF,IAAK,WAED,MAAO+4B,GAAOlgC,KAAKwjF,UAAUtjD,EAAOlgC,KAAKqnC,SAASvpC,KAAK+H,YAI3DuB,IAAK,SAASC,GAEVvJ,KAAK+H,SAAWq6B,EAAOlgC,KAAKkmC,SAAShG,EAAOlgC,KAAKwjF,UAAUn8E,OAUnEJ,OAAOC,eAAeg5B,EAAOk5B,WAAWz3D,UAAW,SAE/CwF,IAAK,WACD,MAAOrJ,MAAKujF,WAAWxzE,OAG3BzG,IAAK,SAAUC,GAEPA,IAAUvJ,KAAKujF,WAAWxzE,QAE1B/P,KAAKujF,WAAWxzE,MAAQxG,MAWpCJ,OAAOC,eAAeg5B,EAAOk5B,WAAWz3D,UAAW,aAE/CwF,IAAK,WACD,MAAOrJ,MAAKujF,WAAWoC,WAG3Br8E,IAAK,SAAUC,GAEPA,IAAUvJ,KAAKujF,WAAWoC,YAE1B3lF,KAAKujF,WAAWoC,UAAYp8E,MAexCJ,OAAOC,eAAeg5B,EAAOk5B,WAAWz3D,UAAW,iBAE/CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAEAvJ,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAKogD,aAAa92C,IAAItJ,KAAKuE,EAAGvE,KAAKwE,IAInCxE,KAAKwgD,OAAO,GAAK,KAc7Br3C,OAAOC,eAAeg5B,EAAOk5B,WAAWz3D,UAAW,UAE/CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAGAvJ,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQ8lC,MAE/C5lF,KAAKs0D,KAAKrN,aAGdjnD,KAAKiI,SAAU,IAKfjI,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQ8lC,OAE/C5lF,KAAKs0D,KAAKkyB,YAAa,GAG3BxmF,KAAKiI,SAAU,MAc3BkB,OAAOC,eAAeg5B,EAAOk5B,WAAWz3D,UAAW,gBAE/CwF,IAAK,WAED,MAAQrJ,MAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAIrCttD,IAAK,SAAUC,GAEPA,EAEmB,OAAfvJ,KAAK8zC,OAEL9zC,KAAK8zC,MAAQ,GAAI1R,GAAO2yC,aAAa/0E,MACrCA,KAAK8zC,MAAM1kC,SAENpP,KAAK8zC,QAAU9zC,KAAK8zC,MAAM8iB,SAE/B52D,KAAK8zC,MAAM1kC,QAKXpP,KAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAEzB52D,KAAK8zC,MAAM9kC,UAc3B7F,OAAOC,eAAeg5B,EAAOk5B,WAAWz3D,UAAW,KAE/CwF,IAAK,WAED,MAAOrJ,MAAK2H,SAASpD,GAIzB+E,IAAK,SAAUC,GAEXvJ,KAAK2H,SAASpD,EAAIgF,EAEdvJ,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQC,QAA8B,IAApB//C,KAAKs0D,KAAKwxB,QAEnE9lF,KAAKs0D,KAAKyxB,OAAS,MAa/B58E,OAAOC,eAAeg5B,EAAOk5B,WAAWz3D,UAAW,KAE/CwF,IAAK,WAED,MAAOrJ,MAAK2H,SAASnD,GAIzB8E,IAAK,SAAUC,GAEXvJ,KAAK2H,SAASnD,EAAI+E,EAEdvJ,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQC,QAA8B,IAApB//C,KAAKs0D,KAAKwxB,QAEnE9lF,KAAKs0D,KAAKyxB,OAAS,MAW/B58E,OAAOC,eAAeg5B,EAAOk5B,WAAWz3D,UAAW,gBAE/CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,MA2B7Bpe,EAAO/E,KAAO,SAAU8U,EAAM5tC,EAAGC,EAAGme,EAAK5S,EAAOnM,GAE5C5D,KAAK4D,UACL5D,KAAK4D,OAASA,EACd5D,KAAKymF,qBAAsB,EAC3BzmF,KAAK0mF,yBAA2B,KAChCniF,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTme,EAAMA,GAAO,KACb5S,EAAQA,GAAS,KAKjB/P,KAAKmyC,KAAOA,EAMZnyC,KAAKqd,KAAO,GAMZrd,KAAKiD,KAAOm/B,EAAO+B,KAKnBnkC,KAAKolB,EAAI,EAKTplB,KAAK+gD,OAAS,GAAI3e,GAAOi4C,OAAOr6E,MAKhCA,KAAKujF,WAAa,GAAInhD,GAAOohD,iBAAiBxjF,MAK9CA,KAAK2iB,IAAMA,EAMX3iB,KAAKmkF,OAAS,EAMdnkF,KAAKkmF,WAAa,GAMlBlmF,KAAKomF,QAAU,GAAIhkD,GAAOn+B,MAE1BhE,KAAKo9B,KAAKt5B,KAAK/D,KAAM2iB,EAAK3iB,KAAK4D,QAE/B5D,KAAK2H,SAAS2B,IAAI/E,EAAEC,GAKpBxE,KAAK8zC,MAAQ,KAKb9zC,KAAKoyC,MAAQ,GAAIhQ,GAAOn+B,MAAMM,EAAGC,GAUjCxE,KAAK0jF,UAAW,EAShB1jF,KAAK6jF,kBAAmB,EAKxB7jF,KAAKogD,aAAe,GAAIhe,GAAOn+B,MAa/BjE,KAAKs0D,KAAO,KAgBZt0D,KAAKwgD,QAAW,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxCxgD,KAAKs+E,YAAY37D,EAAK5S,IAI1BqyB,EAAO/E,KAAKx5B,UAAYsF,OAAOkD,OAAOpM,KAAKo9B,KAAKx5B,WAChDu+B,EAAO/E,KAAKx5B,UAAUsB,YAAci9B,EAAO/E,KAQ3C+E,EAAO/E,KAAKx5B,UAAUuzC,UAAY,WAC9B,GAAuB,IAAnBp3C,KAAKwgD,OAAO,IAAYxgD,KAAKw4C,OAgB7B,MAdAx4C,MAAKoyC,MAAM/K,MAAMrnC,KAAKqI,OAAOV,SAASpD,EAAIvE,KAAK2H,SAASpD,EAAGvE,KAAKqI,OAAOV,SAASnD,EAAIxE,KAAK2H,SAASnD,GAClGxE,KAAK0I,eAAejD,GAAKzF,KAAKoyC,MAAM7tC,EACpCvE,KAAK0I,eAAehD,GAAK1F,KAAKoyC,MAAM5tC,EACpCxE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,SAElB/H,KAAKs0D,MAELt0D,KAAKs0D,KAAKld,YAGdp3C,KAAKwgD,OAAO,GAAK,GAEV,CAOX,IAJAxgD,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,UAEjB/H,KAAKw4C,SAAWx4C,KAAKqI,OAAOmwC,OAI7B,MADAx4C,MAAKwgD,OAAO,GAAK,IACV,GAIPxgD,KAAK0jF,UAAY1jF,KAAK6jF,mBAEtB7jF,KAAK8I,QAAQw+B,SAAStnC,KAAKuK,aAG3BvK,KAAK0jF,WAGL1jF,KAAKoI,WAAapI,KAAKmyC,KAAKC,MAAMwB,OAAOvB,WAAWlK,WAAWnoC,KAAK8I,UAGpE9I,KAAK6jF,mBAGkB,IAAnB7jF,KAAKwgD,OAAO,IAAYxgD,KAAKmyC,KAAKC,MAAMvnC,OAAOs9B,WAAWnoC,KAAK8I,UAE/D9I,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAK+gD,OAAO25B,cAAc5hC,SAAS94C,OAEX,IAAnBA,KAAKwgD,OAAO,IAAaxgD,KAAKmyC,KAAKC,MAAMvnC,OAAOs9B,WAAWnoC,KAAK8I,WAGrE9I,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAK+gD,OAAO05B,cAAc3hC,SAAS94C,QAI3CA,KAAKoyC,MAAM/K,MAAMrnC,KAAKmyC,KAAKyB,OAAOrvC,EAAIvE,KAAK0I,eAAejD,GAAIzF,KAAKmyC,KAAKyB,OAAOpvC,EAAIxE,KAAK0I,eAAehD,IAEnG1F,KAAKiI,UAELjI,KAAKwgD,OAAO,GAAKxgD,KAAKmyC,KAAK7pC,MAAMg1C,wBAGrCt9C,KAAKujF,WAAW/pE,SAEO,IAAnBxZ,KAAKomF,QAAQ7hF,IAEbvE,KAAK00B,aAAanwB,GAAKvE,KAAKomF,QAAQ7hF,EAAIvE,KAAKmyC,KAAK+B,KAAKmyC,gBAGpC,IAAnBrmF,KAAKomF,QAAQ5hF,IAEbxE,KAAK00B,aAAalwB,GAAKxE,KAAKomF,QAAQ5hF,EAAIxE,KAAKmyC,KAAK+B,KAAKmyC,gBAGvDrmF,KAAKs0D,MAELt0D,KAAKs0D,KAAKld,WAId,KAAK,GAAIjzC,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGizC,WAGrB,QAAO,GAUXhV,EAAO/E,KAAKx5B,UAAU2V,OAAS,WACxBxZ,KAAKymF,qBACJzmF,KAAK2mF,gBAAgB5iF,KAAK/D,OAWlCoiC,EAAO/E,KAAKx5B,UAAUu5C,WAAa,WAC3Bp9C,KAAKw4C,QAAUx4C,KAAKs0D,MAEpBt0D,KAAKs0D,KAAKlX,aAIS,IAAnBp9C,KAAKwgD,OAAO,KAEZxgD,KAAK2H,SAASpD,EAAIvE,KAAKmyC,KAAKyB,OAAOnxC,KAAK8B,EAAIvE,KAAKogD,aAAa77C,EAC9DvE,KAAK2H,SAASnD,EAAIxE,KAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAIxE,KAAKogD,aAAa57C,EAIlE,KAAK,GAAIL,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGi5C,cAgBzBhb,EAAO/E,KAAKx5B,UAAUy6E,YAAc,SAAU37D,EAAK5S,GAE/CA,EAAQA,GAAS,EAEjB/P,KAAK2iB,IAAMA,EAEPA,YAAeyf,GAAOr3B,eAEtB/K,KAAK2iB,IAAMA,EAAIA,IACf3iB,KAAKgQ,WAAW2S,IAEXA,YAAeyf,GAAO46C,WAE3Bh9E,KAAKgQ,WAAW2S,EAAI9W,SAEf8W,YAAe1iB,MAAKmS,QAEzBpS,KAAKgQ,WAAW2S,GAIJ,OAARA,GAA+B,mBAARA,IAEvB3iB,KAAK2iB,IAAM,YACX3iB,KAAKgQ,WAAW/P,KAAK+R,aAAahS,KAAK2iB,OAEnB,gBAARA,IAAqB3iB,KAAKmyC,KAAK0B,MAAM2wC,cAAc7hE,IAQ/D3iB,KAAKgQ,WAAW,GAAI/P,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,KACvD3iB,KAAKujF,WAAWgB,cAAcvkF,KAAKmyC,KAAK0B,MAAMywC,aAAa3hE,GAAM5S,KAPjExM,QAAQo0C,KAAK,qBAAuBh1B,EAAM,gBAC1C3iB,KAAK2iB,IAAM,YACX3iB,KAAKgQ,WAAW/P,KAAK+R,aAAahS,KAAK2iB,QAmBnDyf,EAAO/E,KAAKx5B,UAAUq8B,SAAW,SAASnwB,GAEtC/P,KAAK6L,QAAQkE,MAAMxL,EAAIwL,EAAMxL,EAC7BvE,KAAK6L,QAAQkE,MAAMvL,EAAIuL,EAAMvL,EAC7BxE,KAAK6L,QAAQkE,MAAM5I,MAAQ4I,EAAM5I,MACjCnH,KAAK6L,QAAQkE,MAAM3I,OAAS2I,EAAM3I,OAElCpH,KAAK6L,QAAQ+E,KAAKrM,EAAIwL,EAAMxL,EAC5BvE,KAAK6L,QAAQ+E,KAAKpM,EAAIuL,EAAMvL,EAC5BxE,KAAK6L,QAAQ+E,KAAKzJ,MAAQ4I,EAAM5I,MAChCnH,KAAK6L,QAAQ+E,KAAKxJ,OAAS2I,EAAM3I,OAE7B2I,EAAM00E,SAEFzkF,KAAK6L,QAAQ0F,MAEbvR,KAAK6L,QAAQ0F,KAAKhN,EAAIwL,EAAM20E,kBAC5B1kF,KAAK6L,QAAQ0F,KAAK/M,EAAIuL,EAAM40E,kBAC5B3kF,KAAK6L,QAAQ0F,KAAKpK,MAAQ4I,EAAM60E,YAChC5kF,KAAK6L,QAAQ0F,KAAKnK,OAAS2I,EAAM80E,aAIjC7kF,KAAK6L,QAAQ0F,MAAShN,EAAGwL,EAAM20E,kBAAmBlgF,EAAGuL,EAAM40E,kBAAmBx9E,MAAO4I,EAAM60E,YAAax9E,OAAQ2I,EAAM80E,aAG1H7kF,KAAK6L,QAAQ1E,MAAQ4I,EAAM60E,YAC3B5kF,KAAK6L,QAAQzE,OAAS2I,EAAM80E,YAC5B7kF,KAAK6L,QAAQkE,MAAM5I,MAAQ4I,EAAM60E,YACjC5kF,KAAK6L,QAAQkE,MAAM3I,OAAS2I,EAAM80E,cAE5B90E,EAAM00E,SAAWzkF,KAAK6L,QAAQ0F,OAEpCvR,KAAK6L,QAAQ0F,KAAO,MAGxBvR,KAAK6L,QAAQy0B,cAYjB8B,EAAO/E,KAAKx5B,UAAUqI,QAAU,SAAS64C,GAErC,GAAkB,OAAd/kD,KAAKmyC,OAAiBnyC,KAAK6kD,aAA/B,CAE+B,mBAApBE,KAAmCA,GAAkB,GAEhE/kD,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAK+gD,QAEL/gD,KAAK+gD,OAAOT,UAAUxH,SAAS94C,MAG/BA,KAAKgM,UAELhM,KAAKgM,QAAU,MAGfhM,KAAKqI,SAEDrI,KAAKqI,iBAAkB+5B,GAAOsd,MAE9B1/C,KAAKqI,OAAOwuC,OAAO72C,MAInBA,KAAKqI,OAAOuE,YAAY5M,OAIhCA,KAAKujF,WAAWr3E,UAEhBlM,KAAK+gD,OAAO70C,SAEZ,IAAI/H,GAAInE,KAAKoM,SAAS/H,MAEtB,IAAI0gD,EAEA,KAAO5gD,KAEHnE,KAAKoM,SAASjI,GAAG+H,QAAQ64C,OAK7B,MAAO5gD,KAEHnE,KAAK4M,YAAY5M,KAAKoM,SAASjI,GAIvCnE,MAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EAEfjI,KAAKgM,QAAU,KACfhM,KAAKmP,KAAO,KACZnP,KAAKmyC,KAAO,KAEZnyC,KAAKwgD,OAAO,GAAK,IAgBrBpe,EAAO/E,KAAKx5B,UAAUwhF,KAAO,SAAUhoE,EAAMioE,EAAWnK,EAAMoK,GAE1D,MAAOvlF,MAAKujF,WAAW8B,KAAKhoE,EAAMioE,EAAWnK,EAAMoK,IAevDnjD,EAAO/E,KAAKx5B,UAAUwkB,MAAQ,SAAS9jB,EAAGC,GAqBtC,MAnBAxE,MAAKoyC,MAAM/K,MAAM9iC,EAAGC,GACpBxE,KAAK2H,SAASpD,EAAIA,EAClBvE,KAAK2H,SAASnD,EAAIA,EAClBxE,KAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EACfjI,KAAKoI,YAAa,EAClBpI,KAAKolF,mBAAoB,EAEzBplF,KAAK00B,aAAanwB,EAAI,EACtBvE,KAAK00B,aAAalwB,EAAI,EAElBxE,KAAKs0D,MAELt0D,KAAKs0D,KAAKjsC,MAAM9jB,EAAGC,GAAG,GAAO,GAGjCxE,KAAKwgD,OAAO,GAAK,EAEVxgD,MAYXmJ,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,SAEzCwF,IAAK,WAED,MAAO+4B,GAAOlgC,KAAKwjF,UAAUtjD,EAAOlgC,KAAKqnC,SAASvpC,KAAK+H,YAI3DuB,IAAK,SAASC,GAEVvJ,KAAK+H,SAAWq6B,EAAOlgC,KAAKkmC,SAAShG,EAAOlgC,KAAKwjF,UAAUn8E,OAUnEJ,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,SAEzCwF,IAAK,WACD,MAAOrJ,MAAKujF,WAAWxzE,OAG3BzG,IAAK,SAAUC,GAEPA,IAAUvJ,KAAKujF,WAAWxzE,QAE1B/P,KAAKujF,WAAWxzE,MAAQxG,MAWpCJ,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,aAEzCwF,IAAK,WACD,MAAOrJ,MAAKujF,WAAWoC,WAG3Br8E,IAAK,SAAUC,GAEPA,IAAUvJ,KAAKujF,WAAWoC,YAE1B3lF,KAAKujF,WAAWoC,UAAYp8E,MAexCJ,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,iBAEzCwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAEAvJ,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAKogD,aAAa92C,IAAItJ,KAAKuE,EAAGvE,KAAKwE,IAInCxE,KAAKwgD,OAAO,GAAK,KAc7Br3C,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,UAEzCwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAGAvJ,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQ8lC,MAE/C5lF,KAAKs0D,KAAKrN,aAGdjnD,KAAKiI,SAAU,IAKfjI,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQ8lC,OAE/C5lF,KAAKs0D,KAAKkyB,YAAa,GAG3BxmF,KAAKiI,SAAU,MAc3BkB,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,gBAEzCwF,IAAK,WAED,MAAQrJ,MAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAIrCttD,IAAK,SAAUC,GAEPA,EAEmB,OAAfvJ,KAAK8zC,OAEL9zC,KAAK8zC,MAAQ,GAAI1R,GAAO2yC,aAAa/0E,MACrCA,KAAK8zC,MAAM1kC,SAENpP,KAAK8zC,QAAU9zC,KAAK8zC,MAAM8iB,SAE/B52D,KAAK8zC,MAAM1kC,QAKXpP,KAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAEzB52D,KAAK8zC,MAAM9kC,UAc3B7F,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,KAEzCwF,IAAK,WAED,MAAOrJ,MAAK2H,SAASpD,GAIzB+E,IAAK,SAAUC,GAEXvJ,KAAK2H,SAASpD,EAAIgF,EAEdvJ,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQC,QAA8B,IAApB//C,KAAKs0D,KAAKwxB,QAEnE9lF,KAAKs0D,KAAKyxB,OAAS,MAa/B58E,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,KAEzCwF,IAAK,WAED,MAAOrJ,MAAK2H,SAASnD,GAIzB8E,IAAK,SAAUC,GAEXvJ,KAAK2H,SAASnD,EAAI+E,EAEdvJ,KAAKs0D,MAAQt0D,KAAKs0D,KAAKrxD,OAASm/B,EAAO0d,QAAQC,QAA8B,IAApB//C,KAAKs0D,KAAKwxB,QAEnE9lF,KAAKs0D,KAAKyxB,OAAS,MAa/B58E,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,mBAEzCwF,IAAK,WAED,MAAOrJ,MAAK4mF,kBAIhBt9E,IAAK,SAAUC,GACRA,GAA0B,kBAAVA,IACfvJ,KAAKymF,qBAAsB,EAC3BzmF,KAAK4mF,iBAAmBr9E,IAExBvJ,KAAKymF,qBAAsB,EAC3BzmF,KAAK4mF,iBAAmB,SAapCz9E,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,YACzCwF,IAAK,WAGD,IAAI,GADAsD,GAAOtF,EAAIC,EAAIgJ,EAAIC,EAAIpJ,EAAOC,EAAQm0B,EADtCsrD,KAEI1iF,EAAI,EAAGA,EAAInE,KAAK4D,OAAOS,OAAQF,IACnCwI,EAAY,EAAJxI,EACRkD,EAAKrH,KAAKi0B,UAAUtnB,GACpBrF,EAAKtH,KAAKi0B,UAAUtnB,EAAQ,GAC5B2D,EAAKtQ,KAAKi0B,UAAUtnB,EAAQ,GAC5B4D,EAAKvQ,KAAKi0B,UAAUtnB,EAAQ,GAC5BxF,EAAQi7B,EAAOlgC,KAAK4kF,WAAWz/E,EAAGiJ,GAClClJ,EAASg7B,EAAOlgC,KAAK4kF,WAAWx/E,EAAGiJ,GACnClJ,GAAMrH,KAAKoyC,MAAM7tC,EACjB+C,GAAMtH,KAAKoyC,MAAM5tC,EACjB+2B,EAAO,GAAI6G,GAAOl7B,UAAUG,EAAGC,EAAIH,EAAOC,GAC1Cy/E,EAASviF,KAAKi3B,EAElB,OAAOsrD,MAQf19E,OAAOC,eAAeg5B,EAAO/E,KAAKx5B,UAAW,gBAEzCwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,MA0B7Bpe,EAAOlvB,KAAO,SAAUi/B,EAAM5tC,EAAGC,EAAG2O,EAAMC,GAEtC7O,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT2O,EAAOA,GAAQ,IACfC,EAAQA,MAIJD,EAFgB,IAAhBA,EAAK9O,OAEE,IAIA8O,EAAKqB,WAMhBxU,KAAKmyC,KAAOA,EAMZnyC,KAAKw4C,QAAS,EAMdx4C,KAAKqd,KAAO,GAMZrd,KAAKiD,KAAOm/B,EAAOe,KAKnBnjC,KAAKolB,EAAI,EAKTplB,KAAKoyC,MAAQ,GAAIhQ,GAAOn+B,MAAMM,EAAGC,GAMjCxE,KAAK+mF,MAAQ5zE,EAMbnT,KAAKgnF,MAAQ,GAMbhnF,KAAKinF,UAAY,GAMjBjnF,KAAKknF,YAAc,SAMnBlnF,KAAKmnF,aAAe,EAMpBnnF,KAAKonF,WAAa,EAKlBpnF,KAAK+gD,OAAS,GAAI3e,GAAOi4C,OAAOr6E,MAKhCA,KAAK8zC,MAAQ,KAKb9zC,KAAKogD,aAAe,GAAIhe,GAAOn+B,MAK/BjE,KAAK07B,UAEL17B,KAAK2T,SAASP,GAEdnT,KAAKiT,KAAKnP,KAAK/D,KAAMmT,EAAMnT,KAAKoT,OAEhCpT,KAAK2H,SAAS2B,IAAI/E,EAAGC,GAgBrBxE,KAAKwgD,QAAW,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAE3B,MAATrtC,GAEAnT,KAAK4T,cAKbwuB,EAAOlvB,KAAKrP,UAAYsF,OAAOkD,OAAOpM,KAAKiT,KAAKrP,WAChDu+B,EAAOlvB,KAAKrP,UAAUsB,YAAci9B,EAAOlvB,KAM3CkvB,EAAOlvB,KAAKrP,UAAUuzC,UAAY,WAM9B,GAJAp3C,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,UAEjB/H,KAAKw4C,SAAWx4C,KAAKqI,OAAOmwC,OAG7B,MADAx4C,MAAKsjD,cAAgB,IACd,CAGPtjD,MAAK0jF,WAGL1jF,KAAKoI,WAAapI,KAAKmyC,KAAKC,MAAMwB,OAAOvB,WAAWlK,WAAWnoC,KAAKuK,cAGxEvK,KAAKoyC,MAAM/K,MAAMrnC,KAAKmyC,KAAKyB,OAAOrvC,EAAIvE,KAAK0I,eAAejD,GAAIzF,KAAKmyC,KAAKyB,OAAOpvC,EAAIxE,KAAK0I,eAAehD,IAEnG1F,KAAKiI,UAELjI,KAAKwgD,OAAO,GAAKxgD,KAAKmyC,KAAK7pC,MAAMg1C,uBAIrC,KAAK,GAAIn5C,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGizC,WAGrB,QAAO,GAUXhV,EAAOlvB,KAAKrP,UAAU2V,OAAS,aAQ/B4oB,EAAOlvB,KAAKrP,UAAUu5C,WAAa,WAER,IAAnBp9C,KAAKwgD,OAAO,KAEZxgD,KAAK2H,SAASpD,GAAKvE,KAAKmyC,KAAKyB,OAAOnxC,KAAK8B,EAAIvE,KAAKogD,aAAa77C,GAAKvE,KAAKmyC,KAAKyB,OAAOxtC,MAAM7B,EAC3FvE,KAAK2H,SAASnD,GAAKxE,KAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAIxE,KAAKogD,aAAa57C,GAAKxE,KAAKmyC,KAAKyB,OAAOxtC,MAAM5B,EAI/F,KAAK,GAAIL,GAAI,EAAGm3B,EAAMt7B,KAAKoM,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAEjDnE,KAAKoM,SAASjI,GAAGi5C,cASzBhb,EAAOlvB,KAAKrP,UAAUqI,QAAU,SAAU64C,GAEtC,GAAkB,OAAd/kD,KAAKmyC,OAAiBnyC,KAAK6kD,aAA/B,CAE+B,mBAApBE,KAAmCA,GAAkB,GAEhE/kD,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAK+gD,QAEL/gD,KAAK+gD,OAAOT,UAAUxH,SAAS94C,MAG/BA,KAAKqI,SAEDrI,KAAKqI,iBAAkB+5B,GAAOsd,MAE9B1/C,KAAKqI,OAAOwuC,OAAO72C,MAInBA,KAAKqI,OAAOuE,YAAY5M,OAIhCA,KAAK6L,QAAQK,SAAQ,GAEjBlM,KAAKqT,OAAOw3C,WAEZ7qD,KAAKqT,OAAOw3C,WAAWj+C,YAAY5M,KAAKqT,SAIxCrT,KAAKqT,OAAS,KACdrT,KAAK8Q,QAAU,KAGnB,IAAI3M,GAAInE,KAAKoM,SAAS/H,MAEtB,IAAI0gD,EAEA,KAAO5gD,KAEHnE,KAAKoM,SAASjI,GAAG+H,QAAQ64C,OAK7B,MAAO5gD,KAEHnE,KAAK4M,YAAY5M,KAAKoM,SAASjI,GAIvCnE,MAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EAEfjI,KAAKgM,QAAU,KACfhM,KAAKmP,KAAO,KACZnP,KAAKmyC,KAAO,KAEZnyC,KAAKwgD,OAAO,GAAK,IAWrBpe,EAAOlvB,KAAKrP,UAAUwjF,UAAY,SAAU9iF,EAAGC,EAAG4hB,EAAOu6D,GAErD3gF,KAAKoT,MAAM0tE,cAAgBv8E,GAAK,EAChCvE,KAAKoT,MAAM2tE,cAAgBv8E,GAAK,EAChCxE,KAAKoT,MAAMwtE,YAAcx6D,GAAS,gBAClCpmB,KAAKoT,MAAMytE,WAAaF,GAAQ,EAChC3gF,KAAKwJ,OAAQ,GAiBjB44B,EAAOlvB,KAAKrP,UAAU8P,SAAW,SAAUP,GAEvCA,EAAQA,MACRA,EAAMS,KAAOT,EAAMS,MAAQ,kBAC3BT,EAAMU,KAAOV,EAAMU,MAAQ,QAC3BV,EAAMW,MAAQX,EAAMW,OAAS,OAC7BX,EAAMY,OAASZ,EAAMY,QAAU,QAC/BZ,EAAMa,gBAAkBb,EAAMa,iBAAmB,EACjDb,EAAMc,SAAWd,EAAMc,WAAY,EACnCd,EAAMe,cAAgBf,EAAMe,eAAiB,IAC7Cf,EAAM0tE,cAAgB1tE,EAAM0tE,eAAiB,EAC7C1tE,EAAM2tE,cAAgB3tE,EAAM2tE,eAAiB,EAC7C3tE,EAAMwtE,YAAcxtE,EAAMwtE,aAAe,gBACzCxtE,EAAMytE,WAAaztE,EAAMytE,YAAc,EAEvC7gF,KAAKoT,MAAQA,EACbpT,KAAKwJ,OAAQ,GAUjB44B,EAAOlvB,KAAKrP,UAAU+P,WAAa,WAE/B5T,KAAK6L,QAAQ6D,YAAY7M,WAAa7C,KAAK6C,WAE3C7C,KAAK8Q,QAAQ+C,KAAO7T,KAAKoT,MAAMS,IAE/B,IAAIY,GAAazU,KAAKmT,IAElBnT,MAAKoT,MAAMc,WAEXO,EAAazU,KAAKsnF,YAAYtnF,KAAKmT,MAWvC,KAAK,GAPDuB,GAAQD,EAAWE,MAAM,kBAGzBC,KACAC,EAAe,EACfC,EAAiB9U,KAAK+U,wBAAwB/U,KAAKoT,MAAMS,MAEpD1P,EAAI,EAAGA,EAAIuQ,EAAMrQ,OAAQF,IAClC,CACI,GAAI6Q,GAAYhV,KAAK8Q,QAAQmE,YAAYP,EAAMvQ,IAAIgD,KACnDyN,GAAWzQ,GAAK6Q,EAChBH,EAAe3S,KAAKgT,IAAIL,EAAcG,GAG1C,GAAI7N,GAAQ0N,EAAe7U,KAAKoT,MAAMa,eAEtCjU,MAAKqT,OAAOlM,MAAQA,EAAQnH,KAAK6C,UAGjC,IAAIsS,GAAaL,EAAeM,SAAWpV,KAAKoT,MAAMa,gBAElD7M,EAAS+N,EAAaT,EAAMrQ,MAEhCrE,MAAKqT,OAAOjM,OAASA,EAASpH,KAAK6C,WAEnC7C,KAAK8Q,QAAQ1K,MAAMpG,KAAK6C,WAAY7C,KAAK6C,YAErCK,UAAUmS,YAEVrV,KAAK8Q,QAAQwE,UAAU,EAAG,EAAGtV,KAAKqT,OAAOlM,MAAOnH,KAAKqT,OAAOjM,QAGhEpH,KAAK8Q,QAAQ6E,UAAY3V,KAAKoT,MAAMU,KACpC9T,KAAK8Q,QAAQ+C,KAAO7T,KAAKoT,MAAMS,KAC/B7T,KAAK8Q,QAAQyE,YAAcvV,KAAKoT,MAAMY,OACtChU,KAAK8Q,QAAQ0E,aAAe,aAC5BxV,KAAK8Q,QAAQgwE,cAAgB9gF,KAAKoT,MAAM0tE,cACxC9gF,KAAK8Q,QAAQiwE,cAAgB/gF,KAAKoT,MAAM2tE,cACxC/gF,KAAK8Q,QAAQ8vE,YAAc5gF,KAAKoT,MAAMwtE,YACtC5gF,KAAK8Q,QAAQ+vE,WAAa7gF,KAAKoT,MAAMytE,WACrC7gF,KAAK8Q,QAAQkE,UAAYhV,KAAKoT,MAAMa,gBACpCjU,KAAK8Q,QAAQy2E,QAAU,QACvBvnF,KAAK8Q,QAAQ02E,SAAW,OAExB,IAAI/xE,GACAC,CAKJ,KAHA1V,KAAKonF,WAAa,EAGbjjF,EAAI,EAAGA,EAAIuQ,EAAMrQ,OAAQF,IAE1BsR,EAAgBzV,KAAKoT,MAAMa,gBAAkB,EAC7CyB,EAAiB1V,KAAKoT,MAAMa,gBAAkB,EAAI9P,EAAIgR,EAAcL,EAAegB,OAE1D,UAArB9V,KAAKoT,MAAMW,MAEX0B,GAAiBZ,EAAeD,EAAWzQ,GAEjB,WAArBnE,KAAKoT,MAAMW,QAEhB0B,IAAkBZ,EAAeD,EAAWzQ,IAAM,GAGtDuR,GAAiB1V,KAAKmnF,aAElBnnF,KAAK07B,OAAOr3B,OAAS,EAErBrE,KAAKynF,WAAW/yE,EAAMvQ,GAAIsR,EAAeC,IAIrC1V,KAAKoT,MAAMY,QAAUhU,KAAKoT,MAAMa,iBAEhCjU,KAAK8Q,QAAQkF,WAAWtB,EAAMvQ,GAAIsR,EAAeC,GAGjD1V,KAAKoT,MAAMU,MAEX9T,KAAK8Q,QAAQiF,SAASrB,EAAMvQ,GAAIsR,EAAeC,GAK3D1V,MAAKiW,iBAITmsB,EAAOlvB,KAAKrP,UAAU4jF,WAAa,SAAU3wE,EAAMvS,EAAGC,GAElD,IAAK,GAAIL,GAAI,EAAGA,EAAI2S,EAAKzS,OAAQF,IACjC,CACI,GAAIujF,GAAS5wE,EAAK3S,EAEdnE,MAAK07B,OAAO17B,KAAKonF,cAEjBpnF,KAAK8Q,QAAQ6E,UAAY3V,KAAK07B,OAAO17B,KAAKonF,YAC1CpnF,KAAK8Q,QAAQyE,YAAcvV,KAAK07B,OAAO17B,KAAKonF,aAG5CpnF,KAAKoT,MAAMY,QAAUhU,KAAKoT,MAAMa,iBAEhCjU,KAAK8Q,QAAQkF,WAAW0xE,EAAQnjF,EAAGC,GAGnCxE,KAAKoT,MAAMU,MAEX9T,KAAK8Q,QAAQiF,SAAS2xE,EAAQnjF,EAAGC,GAGrCD,GAAKvE,KAAK8Q,QAAQmE,YAAYyyE,GAAQvgF,MAEtCnH,KAAKonF,eAUbhlD,EAAOlvB,KAAKrP,UAAU8jF,YAAc,WAEhC3nF,KAAK07B,UACL17B,KAAKwJ,OAAQ,GAejB44B,EAAOlvB,KAAKrP,UAAU+jF,SAAW,SAAUxhE,EAAOze,GAE9C3H,KAAK07B,OAAO/zB,GAAYye,EACxBpmB,KAAKwJ,OAAQ,GAWjB44B,EAAOlvB,KAAKrP,UAAUyjF,YAAc,SAAUn0E,GAK1C,IAAK,GAHD8D,GAAS,GACTvC,EAAQvB,EAAKwB,MAAM,MAEdxQ,EAAI,EAAGA,EAAIuQ,EAAMrQ,OAAQF,IAClC,CAII,IAAK,GAHD+S,GAAYlX,KAAKoT,MAAMe,cACvBgD,EAAQzC,EAAMvQ,GAAGwQ,MAAM,KAElB9P,EAAI,EAAGA,EAAIsS,EAAM9S,OAAQQ,IAClC,CACI,GAAIuS,GAAYpX,KAAK8Q,QAAQmE,YAAYkC,EAAMtS,IAAIsC,MAC/CkQ,EAAqBD,EAAYpX,KAAK8Q,QAAQmE,YAAY,KAAK9N,KAE/DkQ,GAAqBH,GAGjBrS,EAAI,IAEJoS,GAAU,MAEdA,GAAUE,EAAMtS,GAAK,IACrBqS,EAAYlX,KAAKoT,MAAMe,cAAgBiD,IAIvCF,GAAaG,EACbJ,GAAUE,EAAMtS,GAAK,KAIzBV,EAAIuQ,EAAMrQ,OAAO,IAEjB4S,GAAU,MAIlB,MAAOA,IAWX9N,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,SAEzCwF,IAAK,WACD,MAAO+4B,GAAOlgC,KAAKqnC,SAASvpC,KAAK+H,WAGrCuB,IAAK,SAASC,GACVvJ,KAAK+H,SAAWq6B,EAAOlgC,KAAKkmC,SAAS7+B,MAU7CJ,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,QAEzCwF,IAAK,WACD,MAAOrJ,MAAK+mF,OAGhBz9E,IAAK,SAASC,GAENA,IAAUvJ,KAAK+mF,QAEf/mF,KAAK+mF,MAAQx9E,EAAMiL,YAAc,IACjCxU,KAAKwJ,OAAQ,EAETxJ,KAAKqI,QAELrI,KAAKkK,sBAYrBf,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,QAEzCwF,IAAK,WACD,MAAOrJ,MAAKgnF,OAGhB19E,IAAK,SAASC,GAENA,IAAUvJ,KAAKgnF,QAEfhnF,KAAKgnF,MAAQz9E,EAAMgI,OACnBvR,KAAKoT,MAAMS,KAAO7T,KAAKknF,YAAc,IAAMlnF,KAAKinF,UAAY,OAASjnF,KAAKgnF,MAAQ,IAClFhnF,KAAKwJ,OAAQ,EAETxJ,KAAKqI,QAELrI,KAAKkK,sBAYrBf,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,YAEzCwF,IAAK,WACD,MAAOrJ,MAAKinF,WAGhB39E,IAAK,SAASC,GAEVA,EAAQqO,SAASrO,EAAO,IAEpBA,IAAUvJ,KAAKinF,YAEfjnF,KAAKinF,UAAY19E,EACjBvJ,KAAKoT,MAAMS,KAAO7T,KAAKknF,YAAc,IAAMlnF,KAAKinF,UAAY,OAASjnF,KAAKgnF,MAAQ,IAClFhnF,KAAKwJ,OAAQ,EAETxJ,KAAKqI,QAELrI,KAAKkK,sBAYrBf,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,cAEzCwF,IAAK,WACD,MAAOrJ,MAAKknF,aAGhB59E,IAAK,SAASC,GAENA,IAAUvJ,KAAKknF,cAEflnF,KAAKknF,YAAc39E,EACnBvJ,KAAKoT,MAAMS,KAAO7T,KAAKknF,YAAc,IAAMlnF,KAAKinF,UAAY,OAASjnF,KAAKgnF,MAAQ,IAClFhnF,KAAKwJ,OAAQ,EAETxJ,KAAKqI,QAELrI,KAAKkK,sBAYrBf,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,QAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAMU,MAGtBxK,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAMU,OAErB9T,KAAKoT,MAAMU,KAAOvK,EAClBvJ,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,SAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAMW,OAGtBzK,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAMW,QAErB/T,KAAKoT,MAAMW,MAAQxK,EACnBvJ,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,UAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAMY,QAGtB1K,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAMY,SAErBhU,KAAKoT,MAAMY,OAASzK,EACpBvJ,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,mBAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAMa,iBAGtB3K,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAMa,kBAErBjU,KAAKoT,MAAMa,gBAAkB1K,EAC7BvJ,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,YAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAMc,UAGtB5K,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAMc,WAErBlU,KAAKoT,MAAMc,SAAW3K,EACtBvJ,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,iBAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAMe,eAGtB7K,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAMe,gBAErBnU,KAAKoT,MAAMe,cAAgB5K,EAC3BvJ,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,eAEzCwF,IAAK,WACD,MAAOrJ,MAAKmnF,cAGhB79E,IAAK,SAASC,GAENA,IAAUvJ,KAAKmnF,eAEfnnF,KAAKmnF,aAAeU,WAAWt+E,GAC/BvJ,KAAKwJ,OAAQ,EAETxJ,KAAKqI,QAELrI,KAAKkK,sBAYrBf,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,iBAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAM0tE,eAGtBx3E,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAM0tE,gBAErB9gF,KAAKoT,MAAM0tE,cAAgBv3E,EAC3BvJ,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,iBAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAM2tE,eAGtBz3E,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAM2tE,gBAErB/gF,KAAKoT,MAAM2tE,cAAgBx3E,EAC3BvJ,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,eAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAMwtE,aAGtBt3E,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAMwtE,cAErB5gF,KAAKoT,MAAMwtE,YAAcr3E,EACzBvJ,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,cAEzCwF,IAAK,WACD,MAAOrJ,MAAKoT,MAAMytE,YAGtBv3E,IAAK,SAASC,GAENA,IAAUvJ,KAAKoT,MAAMytE,aAErB7gF,KAAKoT,MAAMytE,WAAat3E,EACxBvJ,KAAKwJ,OAAQ,MAczBL,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,gBAEzCwF,IAAK,WAED,MAAQrJ,MAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAIrCttD,IAAK,SAAUC,GAEPA,EAEmB,OAAfvJ,KAAK8zC,OAEL9zC,KAAK8zC,MAAQ,GAAI1R,GAAO2yC,aAAa/0E,MACrCA,KAAK8zC,MAAM1kC,SAENpP,KAAK8zC,QAAU9zC,KAAK8zC,MAAM8iB,SAE/B52D,KAAK8zC,MAAM1kC,QAKXpP,KAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAEzB52D,KAAK8zC,MAAM9kC,UAgB3B7F,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,iBAEzCwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAEAvJ,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAKogD,aAAa92C,IAAItJ,KAAKuE,EAAGvE,KAAKwE,IAInCxE,KAAKwgD,OAAO,GAAK,KAU7Br3C,OAAOC,eAAeg5B,EAAOlvB,KAAKrP,UAAW,gBAEzCwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,MA6B7Bpe,EAAO7qB,WAAa,SAAU46B,EAAM5tC,EAAGC,EAAGqP,EAAMV,EAAM2E,GAElDvT,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTqP,EAAOA,GAAQ,GACfV,EAAOA,GAAQ,GACf2E,EAAOA,GAAQ,GAKf9X,KAAKmyC,KAAOA,EAMZnyC,KAAKw4C,QAAS,EAMdx4C,KAAKqd,KAAO,GAMZrd,KAAKiD,KAAOm/B,EAAOiB,WAKnBrjC,KAAKolB,EAAI,EAKTplB,KAAKoyC,MAAQ,GAAIhQ,GAAOn+B,MAAMM,EAAGC,GAMjCxE,KAAK+mF,MAAQ5zE,EAMbnT,KAAKgnF,MAAQnzE,EAMb7T,KAAKinF,UAAYnvE,EAMjB9X,KAAK8nF,OAAS,OAMd9nF,KAAK+nF,MAAQ,SAKb/nF,KAAK+gD,OAAS,GAAI3e,GAAOi4C,OAAOr6E,MAKhCA,KAAK8zC,MAAQ,KAKb9zC,KAAKogD,aAAe,GAAIhe,GAAOn+B,MAE/BhE,KAAKsX,WAAWxT,KAAK/D,KAAMmT,GAE3BnT,KAAK2H,SAAS2B,IAAI/E,EAAGC,GAgBrBxE,KAAKwgD,QAAU,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAI3Cpe,EAAO7qB,WAAW1T,UAAYsF,OAAOkD,OAAOpM,KAAKsX,WAAW1T,WAC5Du+B,EAAO7qB,WAAW1T,UAAUsB,YAAci9B,EAAO7qB,WAMjD6qB,EAAO7qB,WAAW1T,UAAU8P,SAAW,WAEnC3T,KAAKoT,OAAUW,MAAO/T,KAAK8nF,QAC3B9nF,KAAK2X,SAAW3X,KAAKgnF,MACrBhnF,KAAKoV,SAAWpV,KAAKinF,UACrBjnF,KAAKwJ,OAAQ,GAQjB44B,EAAO7qB,WAAW1T,UAAUuzC,UAAY,WAMpC,MAJAp3C,MAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,SAEjB/H,KAAKw4C,QAAWx4C,KAAKqI,OAAOmwC,QAM7Bx4C,KAAK0jF,WAGL1jF,KAAKoI,WAAapI,KAAKmyC,KAAKC,MAAMwB,OAAOvB,WAAWlK,WAAWnoC,KAAKuK,cAGxEvK,KAAKoyC,MAAM/K,MAAMrnC,KAAKmyC,KAAKyB,OAAOrvC,EAAIvE,KAAK0I,eAAejD,GAAIzF,KAAKmyC,KAAKyB,OAAOpvC,EAAIxE,KAAK0I,eAAehD,IAEnG1F,KAAKiI,UAELjI,KAAKwgD,OAAO,GAAKxgD,KAAKmyC,KAAK7pC,MAAMg1C,yBAG9B,IAjBHt9C,KAAKsjD,cAAgB,IACd,IAyBflhB,EAAO7qB,WAAW1T,UAAU2V,OAAS,aAQrC4oB,EAAO7qB,WAAW1T,UAAUu5C,WAAa,WAGd,IAAnBp9C,KAAKwgD,OAAO,KAEZxgD,KAAK2H,SAASpD,GAAKvE,KAAKmyC,KAAKyB,OAAOnxC,KAAK8B,EAAIvE,KAAKogD,aAAa77C,GAAKvE,KAAKmyC,KAAKyB,OAAOxtC,MAAM7B,EAC3FvE,KAAK2H,SAASnD,GAAKxE,KAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAIxE,KAAKogD,aAAa57C,GAAKxE,KAAKmyC,KAAKyB,OAAOxtC,MAAM5B,IAUnG49B,EAAO7qB,WAAW1T,UAAUqI,QAAU,SAAS64C,GAE3C,GAAkB,OAAd/kD,KAAKmyC,OAAiBnyC,KAAK6kD,aAA/B,CAE+B,mBAApBE,KAAmCA,GAAkB,GAEhE/kD,KAAKwgD,OAAO,GAAK,EAEbxgD,KAAKqI,SAEDrI,KAAKqI,iBAAkB+5B,GAAOsd,MAE9B1/C,KAAKqI,OAAOwuC,OAAO72C,MAInBA,KAAKqI,OAAOuE,YAAY5M,MAIhC,IAAImE,GAAInE,KAAKoM,SAAS/H,MAEtB,IAAI0gD,EAEA,KAAO5gD,KAECnE,KAAKoM,SAASjI,GAAG+H,QAEjBlM,KAAKoM,SAASjI,GAAG+H,QAAQ64C,GAIzB/kD,KAAK4M,YAAY5M,KAAKoM,SAASjI,QAMvC,MAAOA,KAEHnE,KAAK4M,YAAY5M,KAAKoM,SAASjI,GAIvCnE,MAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EAEfjI,KAAKgM,QAAU,KACfhM,KAAKmP,KAAO,KACZnP,KAAKmyC,KAAO,KAEZnyC,KAAKwgD,OAAO,GAAK,IAQrBr3C,OAAOC,eAAeg5B,EAAO7qB,WAAW1T,UAAW,SAE/CwF,IAAK,WACD,MAAOrJ,MAAK8nF,QAGhBx+E,IAAK,SAASC,GAENA,IAAUvJ,KAAK8nF,SAEf9nF,KAAK8nF,OAASv+E,EACdvJ,KAAK2T,eAWjBxK,OAAOC,eAAeg5B,EAAO7qB,WAAW1T,UAAW,QAE/CwF,IAAK,WACD,MAAOrJ,MAAK+nF,OAGhBz+E,IAAK,SAASC,GAENA,IAAUvJ,KAAK+nF,QAEf/nF,KAAK+nF,MAAQx+E,EACbvJ,KAAKwJ,OAAQ,MAczBL,OAAOC,eAAeg5B,EAAO7qB,WAAW1T,UAAW,SAE/CwF,IAAK,WACD,MAAO+4B,GAAOlgC,KAAKqnC,SAASvpC,KAAK+H,WAGrCuB,IAAK,SAASC,GACVvJ,KAAK+H,SAAWq6B,EAAOlgC,KAAKkmC,SAAS7+B,MAS7CJ,OAAOC,eAAeg5B,EAAO7qB,WAAW1T,UAAW,QAE/CwF,IAAK,WACD,MAAOrJ,MAAKgnF,OAGhB19E,IAAK,SAASC,GAENA,IAAUvJ,KAAKgnF,QAEfhnF,KAAKgnF,MAAQz9E,EAAMgI,OACnBvR,KAAKoT,MAAMS,KAAO7T,KAAKinF,UAAY,OAASjnF,KAAKgnF,MAAQ,IACzDhnF,KAAKwJ,OAAQ,MAWzBL,OAAOC,eAAeg5B,EAAO7qB,WAAW1T,UAAW,YAE/CwF,IAAK,WACD,MAAOrJ,MAAKinF,WAGhB39E,IAAK,SAASC,GAEVA,EAAQqO,SAASrO,EAAO,IAEpBA,IAAUvJ,KAAKinF,YAEfjnF,KAAKinF,UAAY19E,EACjBvJ,KAAKoT,MAAMS,KAAO7T,KAAKinF,UAAY,OAASjnF,KAAKgnF,MAAQ,IACzDhnF,KAAKwJ,OAAQ,MAYzBL,OAAOC,eAAeg5B,EAAO7qB,WAAW1T,UAAW,QAE/CwF,IAAK,WACD,MAAOrJ,MAAK+mF,OAGhBz9E,IAAK,SAASC,GAENA,IAAUvJ,KAAK+mF,QAEf/mF,KAAK+mF,MAAQx9E,EAAMiL,YAAc,IACjCxU,KAAKwJ,OAAQ,MAczBL,OAAOC,eAAeg5B,EAAO7qB,WAAW1T,UAAW,gBAE/CwF,IAAK,WAED,MAAQrJ,MAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAIrCttD,IAAK,SAAUC,GAEPA,EAEmB,OAAfvJ,KAAK8zC,OAEL9zC,KAAK8zC,MAAQ,GAAI1R,GAAO2yC,aAAa/0E,MACrCA,KAAK8zC,MAAM1kC,SAENpP,KAAK8zC,QAAU9zC,KAAK8zC,MAAM8iB,SAE/B52D,KAAK8zC,MAAM1kC,QAKXpP,KAAK8zC,OAAS9zC,KAAK8zC,MAAM8iB,SAEzB52D,KAAK8zC,MAAM9kC,UAgB3B7F,OAAOC,eAAeg5B,EAAO7qB,WAAW1T,UAAW,iBAE/CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAEAvJ,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAKogD,aAAa92C,IAAItJ,KAAKuE,EAAGvE,KAAKwE,IAInCxE,KAAKwgD,OAAO,GAAK,KAU7Br3C,OAAOC,eAAeg5B,EAAO7qB,WAAW1T,UAAW,gBAE/CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,MAwC7Bpe,EAAOw5C,OAAS,SAAUzpC,EAAM5tC,EAAGC,EAAGme,EAAKtI,EAAUy8B,EAAiB0kC,EAAWC,EAAUC,EAAWC,GAElGp3E,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTme,EAAMA,GAAO,KACbtI,EAAWA,GAAY,KACvBy8B,EAAkBA,GAAmB92C,KAErCoiC,EAAOjJ,MAAMp1B,KAAK/D,KAAMmyC,EAAM5tC,EAAGC,EAAGme,EAAK84D,GAOzCz7E,KAAKiD,KAAOm/B,EAAOY,OAOnBhjC,KAAKgoF,aAAe,KAOpBhoF,KAAKioF,YAAc,KAOnBjoF,KAAKkoF,aAAe,KAOpBloF,KAAKmoF,WAAa,KAQlBnoF,KAAKooF,YAAc,KAQnBpoF,KAAKqoF,WAAa,KAQlBroF,KAAKsoF,YAAc,KAQnBtoF,KAAKuoF,UAAY,KAQjBvoF,KAAKwoF,kBAAoB,GAQzBxoF,KAAKyoF,iBAAmB,GAQxBzoF,KAAK0oF,kBAAoB,GAQzB1oF,KAAK2oF,gBAAkB,GAMvB3oF,KAAK42E,YAAc,GAAIx0C,GAAOuW,OAM9B34C,KAAK62E,WAAa,GAAIz0C,GAAOuW,OAM7B34C,KAAK82E,YAAc,GAAI10C,GAAOuW,OAM9B34C,KAAK+2E,UAAY,GAAI30C,GAAOuW,OAQ5B34C,KAAK4oF,iBAAkB,EAOvB5oF,KAAK6oF,cAAe,EAOpB7oF,KAAK8oF,UAAW,EAEhB9oF,KAAK+oF,cAAe,EAEpB/oF,KAAK8zC,MAAM1kC,MAAM,GAAG,GAEpBpP,KAAKgpF,UAAUxN,EAAWC,EAAUC,EAAWC,GAE9B,OAAbthE,GAEAra,KAAK+2E,UAAU/tC,IAAI3uB,EAAUy8B,GAIjC92C,KAAK+gD,OAAO61B,YAAY5tC,IAAIhpC,KAAKipF,mBAAoBjpF,MACrDA,KAAK+gD,OAAO81B,WAAW7tC,IAAIhpC,KAAKkpF,kBAAmBlpF,MACnDA,KAAK+gD,OAAO+1B,YAAY9tC,IAAIhpC,KAAKmpF,mBAAoBnpF,MACrDA,KAAK+gD,OAAOg2B,UAAU/tC,IAAIhpC,KAAKopF,iBAAkBppF,MAEjDA,KAAK+gD,OAAOu5B,mBAAmBtxC,IAAIhpC,KAAKqpF,iBAAkBrpF,OAI9DoiC,EAAOw5C,OAAO/3E,UAAYsF,OAAOkD,OAAO+1B,EAAOjJ,MAAMt1B,WACrDu+B,EAAOw5C,OAAO/3E,UAAUsB,YAAci9B,EAAOw5C,MAG7C,IAAI0N,GAAa,OACbC,EAAY,MACZC,EAAa,OACbC,EAAW,IAQfrnD,GAAOw5C,OAAO/3E,UAAU6lF,YAAc,WAElC1pF,KAAKgpF,UAAU,KAAM,KAAM,KAAM,OAUrC5mD,EAAOw5C,OAAO/3E,UAAUwlF,iBAAmB,WAEvCrpF,KAAK+oF,cAAe,GAaxB3mD,EAAOw5C,OAAO/3E,UAAU8lF,cAAgB,SAAUlzC,EAAO1mC,EAAO65E,GAG5D,GAAIC,GAAW,MAAQpzC,EAAQ,OAElB,OAAT1mC,GAEA/P,KAAK6pF,GAAY95E,EAEb65E,GAEA5pF,KAAK8pF,iBAAiBrzC,IAK1Bz2C,KAAK6pF,GAAY,MAazBznD,EAAOw5C,OAAO/3E,UAAUimF,iBAAmB,SAAUrzC,GAEjD,GAAIz2C,KAAK6oF,aAEL,OAAO,CAGX,IAAIgB,GAAW,MAAQpzC,EAAQ,QAC3B1mC,EAAQ/P,KAAK6pF,EAEjB,OAAqB,gBAAV95E,IAEP/P,KAAK2lF,UAAY51E,GACV,GAEe,gBAAVA,IAEZ/P,KAAK+P,MAAQA,GACN,IAIA,GAiBfqyB,EAAOw5C,OAAO/3E,UAAUmlF,UAAY,SAAUxN,EAAWC,EAAUC,EAAWC,GAE1E37E,KAAK2pF,cAAcL,EAAY9N,EAAWx7E,KAAK8zC,MAAMikC,eACrD/3E,KAAK2pF,cAAcJ,EAAW9N,GAAWz7E,KAAK8zC,MAAMikC,eACpD/3E,KAAK2pF,cAAcH,EAAY9N,EAAW17E,KAAK8zC,MAAM6jC,eACrD33E,KAAK2pF,cAAcF,EAAU9N,EAAS37E,KAAK8zC,MAAM8jC,cAarDx1C,EAAOw5C,OAAO/3E,UAAUkmF,cAAgB,SAAUtzC,EAAOxC,EAAO+1C,GAE5D,GAAIC,GAAW,KAAOxzC,EAAQ,QAC1ByzC,EAAY,KAAOzzC,EAAQ,aAE3BxC,aAAiB7R,GAAO+nD,OAASl2C,YAAiB7R,GAAOgoD,aAEzDpqF,KAAKiqF,GAAYh2C,EACjBj0C,KAAKkqF,GAA+B,gBAAXF,GAAsBA,EAAS,KAIxDhqF,KAAKiqF,GAAY,KACjBjqF,KAAKkqF,GAAa,KAa1B9nD,EAAOw5C,OAAO/3E,UAAUwmF,eAAiB,SAAU5zC,GAE/C,GAAIwzC,GAAW,KAAOxzC,EAAQ,QAC1BxC,EAAQj0C,KAAKiqF,EAEjB,IAAIh2C,EACJ,CACI,GAAIi2C,GAAY,KAAOzzC,EAAQ,cAC3BuzC,EAAShqF,KAAKkqF,EAGlB,OADAj2C,GAAMoxC,KAAK2E,IACJ,EAIP,OAAO,GAsBf5nD,EAAOw5C,OAAO/3E,UAAUymF,UAAY,SAAUC,EAAWC,EAAYC,EAAWC,EAAYC,EAAUC,EAAWC,EAASC,GAEtH9qF,KAAK+pF,cAAcT,EAAYiB,EAAWC,GAC1CxqF,KAAK+pF,cAAcR,EAAWoB,EAAUC,GACxC5qF,KAAK+pF,cAAcP,EAAYiB,EAAWC,GAC1C1qF,KAAK+pF,cAAcN,EAAUoB,EAASC,IAY1C1oD,EAAOw5C,OAAO/3E,UAAUknF,aAAe,SAAU92C,EAAO+1C,GAEpDhqF,KAAK+pF,cAAcT,EAAYr1C,EAAO+1C,IAY1C5nD,EAAOw5C,OAAO/3E,UAAUmnF,YAAc,SAAU/2C,EAAO+1C,GAEnDhqF,KAAK+pF,cAAcR,EAAWt1C,EAAO+1C,IAYzC5nD,EAAOw5C,OAAO/3E,UAAUonF,aAAe,SAAUh3C,EAAO+1C,GAEpDhqF,KAAK+pF,cAAcP,EAAYv1C,EAAO+1C,IAY1C5nD,EAAOw5C,OAAO/3E,UAAUqnF,WAAa,SAAUj3C,EAAO+1C,GAElDhqF,KAAK+pF,cAAcN,EAAUx1C,EAAO+1C,IAYxC5nD,EAAOw5C,OAAO/3E,UAAUolF,mBAAqB,SAAUn1D,EAAQuoB,GAGvDA,EAAQqgB,iBAKZ18D,KAAK8pF,iBAAiBR,KAElBtpF,KAAK4oF,iBAAoBvsC,EAAQusB,WAKrC5oE,KAAKqqF,eAAef,GAEhBtpF,KAAK42E,aAEL52E,KAAK42E,YAAY99B,SAAS94C,KAAMq8C,MAaxCja,EAAOw5C,OAAO/3E,UAAUqlF,kBAAoB,SAAUp1D,EAAQuoB,GAE1Dr8C,KAAK8pF,iBAAiBP,GAEtBvpF,KAAKqqF,eAAed,GAEhBvpF,KAAK62E,YAEL72E,KAAK62E,WAAW/9B,SAAS94C,KAAMq8C,IAYvCja,EAAOw5C,OAAO/3E,UAAUslF,mBAAqB,SAAUr1D,EAAQuoB,GAE3Dr8C,KAAK8pF,iBAAiBN,GAEtBxpF,KAAKqqF,eAAeb,GAEhBxpF,KAAK82E,aAEL92E,KAAK82E,YAAYh+B,SAAS94C,KAAMq8C,IAYxCja,EAAOw5C,OAAO/3E,UAAUulF,iBAAmB,SAAUt1D,EAAQuoB,EAASk6B,GAUlE,GARAv2E,KAAKqqF,eAAeZ,GAGhBzpF,KAAK+2E,WAEL/2E,KAAK+2E,UAAUj+B,SAAS94C,KAAMq8C,EAASk6B,IAGvCv2E,KAAK6oF,aAKT,GAAI7oF,KAAK8oF,SAEL9oF,KAAK8pF,iBAAiBP,OAG1B,CACI,GAAI4B,GAAYnrF,KAAK8pF,iBAAiBL,EACjC0B,IAKGnrF,KAAK8pF,iBAFLvT,EAEsB+S,EAIAC,KAuBtCnnD,EAAO7Z,SAAW,SAAU4pB,EAAM5tC,EAAGC,GAEjCD,EAAIA,GAAK,EACTC,EAAIA,GAAK,EAKTxE,KAAKmyC,KAAOA,EAMZnyC,KAAKw4C,QAAS,EAMdx4C,KAAKqd,KAAO,GAMZrd,KAAKiD,KAAOm/B,EAAOc,SAKnBljC,KAAKolB,EAAI,EAKTplB,KAAKoyC,MAAQ,GAAIhQ,GAAOn+B,MAAMM,EAAGC,GAKjCxE,KAAKogD,aAAe,GAAIhe,GAAOn+B,MAE/BhE,KAAKsoB,SAASxkB,KAAK/D,MAEnBA,KAAK2H,SAAS2B,IAAI/E,EAAGC,GAgBrBxE,KAAKwgD,QAAW,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAI5Cpe,EAAO7Z,SAAS1kB,UAAYsF,OAAOkD,OAAOpM,KAAKsoB,SAAS1kB,WACxDu+B,EAAO7Z,SAAS1kB,UAAUsB,YAAci9B,EAAO7Z,SAM/C6Z,EAAO7Z,SAAS1kB,UAAUuzC,UAAY,WAMlC,MAJAp3C,MAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM7tC,EAC5BvE,KAAKwgD,OAAO,GAAKxgD,KAAKoyC,MAAM5tC,EAC5BxE,KAAKwgD,OAAO,GAAKxgD,KAAK+H,SAEjB/H,KAAKw4C,QAAWx4C,KAAKqI,OAAOmwC,QAM7Bx4C,KAAK0jF,WAGL1jF,KAAKoI,WAAapI,KAAKmyC,KAAKC,MAAMwB,OAAOvB,WAAWlK,WAAWnoC,KAAKuK,cAGxEvK,KAAKoyC,MAAM/K,MAAMrnC,KAAKmyC,KAAKyB,OAAOrvC,EAAIvE,KAAK0I,eAAejD,GAAIzF,KAAKmyC,KAAKyB,OAAOpvC,EAAIxE,KAAK0I,eAAehD,IAEnG1F,KAAKiI,UAELjI,KAAKwgD,OAAO,GAAKxgD,KAAKmyC,KAAK7pC,MAAMg1C,yBAG9B,IAjBHt9C,KAAKsjD,cAAgB,IACd,IA0BflhB,EAAO7Z,SAAS1kB,UAAU2V,OAAS,aAQnC4oB,EAAO7Z,SAAS1kB,UAAUu5C,WAAa,WAGZ,IAAnBp9C,KAAKwgD,OAAO,KAEZxgD,KAAK2H,SAASpD,GAAKvE,KAAKmyC,KAAKyB,OAAOnxC,KAAK8B,EAAIvE,KAAKogD,aAAa77C,GAAKvE,KAAKmyC,KAAKyB,OAAOxtC,MAAM7B,EAC3FvE,KAAK2H,SAASnD,GAAKxE,KAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAIxE,KAAKogD,aAAa57C,GAAKxE,KAAKmyC,KAAKyB,OAAOxtC,MAAM5B,IAWnG49B,EAAO7Z,SAAS1kB,UAAUqI,QAAU,SAAS64C,GAEzC,GAAkB,OAAd/kD,KAAKmyC,OAAiBnyC,KAAK6kD,aAA/B,CAE+B,mBAApBE,KAAmCA,GAAkB,GAEhE/kD,KAAKwgD,OAAO,GAAK,EAEjBxgD,KAAK8vB,QAED9vB,KAAKqI,SAEDrI,KAAKqI,iBAAkB+5B,GAAOsd,MAE9B1/C,KAAKqI,OAAOwuC,OAAO72C,MAInBA,KAAKqI,OAAOuE,YAAY5M,MAIhC,IAAImE,GAAInE,KAAKoM,SAAS/H,MAEtB,IAAI0gD,EAEA,KAAO5gD,KAEHnE,KAAKoM,SAASjI,GAAG+H,QAAQ64C,OAK7B,MAAO5gD,KAEHnE,KAAK4M,YAAY5M,KAAKoM,SAASjI,GAIvCnE,MAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EAEfjI,KAAKmyC,KAAO,KAEZnyC,KAAKwgD,OAAO,GAAK,IAWrBpe,EAAO7Z,SAAS1kB,UAAUunF,aAAe,SAASxnF,EAAQynF,GAElC,mBAATA,KAAwBA,GAAO,EAE1C,IAAIC,GAAW,GAAIlpD,GAAOz+B,QAAQC,EAElC,IAAIynF,EACJ,CACI,GAAIE,GAAe,GAAInpD,GAAOn+B,MAAMjE,KAAKmyC,KAAKyB,OAAOrvC,EAAIX,EAAO,GAAGW,EAAGvE,KAAKmyC,KAAKyB,OAAOpvC,EAAIZ,EAAO,GAAGY,GACjGgnF,EAAK,GAAIppD,GAAOn+B,MAAML,EAAO,GAAGW,EAAIX,EAAO,GAAGW,EAAGX,EAAO,GAAGY,EAAIZ,EAAO,GAAGY,GACzEinF,EAAK,GAAIrpD,GAAOn+B,MAAML,EAAO,GAAGW,EAAIX,EAAO,GAAGW,EAAGX,EAAO,GAAGY,EAAIZ,EAAO,GAAGY,GACzEknF,EAAaD,EAAGvhD,MAAMshD,EAEtBD,GAAathD,IAAIyhD,GAAc,GAE/B1rF,KAAK4xC,YAAY05C,OAKrBtrF,MAAK4xC,YAAY05C,IAazBlpD,EAAO7Z,SAAS1kB,UAAU8nF,cAAgB,SAASx4D,EAAU9L,EAASgkE,GAE9C,mBAATA,KAAwBA,GAAO,EAE1C,IAIIlnF,GAJAynF,EAAS,GAAIxpD,GAAOn+B,MACpB4nF,EAAS,GAAIzpD,GAAOn+B,MACpB6nF,EAAS,GAAI1pD,GAAOn+B,MACpBL,IAGJ,IAAKyjB,EAyBD,GAAI8L,EAAS,YAAciP,GAAOn+B,MAE9B,IAAKE,EAAI,EAAGA,EAAIkjB,EAAQhjB,OAAQ,EAAGF,IAE/BP,EAAOU,KAAK6uB,EAAS9L,EAAY,EAAJljB,KAC7BP,EAAOU,KAAK6uB,EAAS9L,EAAY,EAAJljB,EAAQ,KACrCP,EAAOU,KAAK6uB,EAAS9L,EAAY,EAAJljB,EAAQ,KAEf,IAAlBP,EAAOS,SAEPrE,KAAKorF,aAAaxnF,EAAQynF,GAC1BznF,UAMR,KAAKO,EAAI,EAAGA,EAAIkjB,EAAQhjB,OAAQF,IAE5BynF,EAAOrnF,EAAI4uB,EAAsB,EAAb9L,EAAQljB,IAC5BynF,EAAOpnF,EAAI2uB,EAAsB,EAAb9L,EAAQljB,GAAS,GACrCP,EAAOU,KAAKsnF,EAAOrkD,YAEG,IAAlB3jC,EAAOS,SAEPrE,KAAKorF,aAAaxnF,EAAQynF,GAC1BznF,UAjDZ,IAAIuvB,EAAS,YAAciP,GAAOn+B,MAE9B,IAAKE,EAAI,EAAGA,EAAIgvB,EAAS9uB,OAAS,EAAGF,IAEjCnE,KAAKorF,cAAcj4D,EAAa,EAAJhvB,GAAQgvB,EAAa,EAAJhvB,EAAQ,GAAIgvB,EAAa,EAAJhvB,EAAQ,IAAKknF,OAKnF,KAAKlnF,EAAI,EAAGA,EAAIgvB,EAAS9uB,OAAS,EAAGF,IAEjCynF,EAAOrnF,EAAI4uB,EAAa,EAAJhvB,EAAQ,GAC5BynF,EAAOpnF,EAAI2uB,EAAa,EAAJhvB,EAAQ,GAC5B0nF,EAAOtnF,EAAI4uB,EAAa,EAAJhvB,EAAQ,GAC5B0nF,EAAOrnF,EAAI2uB,EAAa,EAAJhvB,EAAQ,GAC5B2nF,EAAOvnF,EAAI4uB,EAAa,EAAJhvB,EAAQ,GAC5B2nF,EAAOtnF,EAAI2uB,EAAa,EAAJhvB,EAAQ,GAC5BnE,KAAKorF,cAAcQ,EAAQC,EAAQC,GAAST,IA+C5DliF,OAAOC,eAAeg5B,EAAO7Z,SAAS1kB,UAAW,SAE7CwF,IAAK,WACD,MAAO+4B,GAAOlgC,KAAKqnC,SAASvpC,KAAK+H,WAGrCuB,IAAK,SAASC,GACVvJ,KAAK+H,SAAWq6B,EAAOlgC,KAAKkmC,SAAS7+B,MAa7CJ,OAAOC,eAAeg5B,EAAO7Z,SAAS1kB,UAAW,iBAE7CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,IAIzBl3C,IAAK,SAAUC,GAEPA,GAEAvJ,KAAKwgD,OAAO,GAAK,EACjBxgD,KAAKogD,aAAa92C,IAAItJ,KAAKuE,EAAGvE,KAAKwE,IAInCxE,KAAKwgD,OAAO,GAAK,KAU7Br3C,OAAOC,eAAeg5B,EAAO7Z,SAAS1kB,UAAW,gBAE7CwF,IAAK,WAED,QAASrJ,KAAKwgD,OAAO,MA2B7Bpe,EAAOr3B,cAAgB,SAAUonC,EAAMhrC,EAAOC,EAAQub,EAAKhY,EAAW9H,GAE/C,mBAAR8f,KAAuBA,EAAM,IACf,mBAAdhY,KAA6BA,EAAYy3B,EAAO7gC,WAAWC,SAC5C,mBAAfqB,KAA8BA,EAAa,GAKtD7C,KAAKmyC,KAAOA,EAKZnyC,KAAK2iB,IAAMA,EAKX3iB,KAAKiD,KAAOm/B,EAAOmB,cAKnBvjC,KAAK6G,OAAS,GAAI5G,MAAKmF,OAEvBnF,KAAK8K,cAAchH,KAAK/D,KAAMmH,EAAOC,EAAQpH,KAAKmyC,KAAKvnC,SAAUD,EAAW9H,GAE5E7C,KAAKiL,OAASm3B,EAAOr3B,cAAclH,UAAUoH,QAIjDm3B,EAAOr3B,cAAclH,UAAYsF,OAAOkD,OAAOpM,KAAK8K,cAAclH,WAClEu+B,EAAOr3B,cAAclH,UAAUsB,YAAci9B,EAAOr3B,cAWpDq3B,EAAOr3B,cAAclH,UAAUkoF,SAAW,SAAU97D,EAAe1rB,EAAGC,EAAGsrB,GAErE9vB,KAAK6G,OAAOpB,GAAKlB,EACjBvE,KAAK6G,OAAOnB,GAAKlB,EAEbxE,KAAK4K,SAAS3H,OAAShD,KAAKC,eAE5BF,KAAK6gC,YAAY5Q,EAAejwB,KAAK6G,OAAQipB,GAI7C9vB,KAAK8gC,aAAa7Q,EAAejwB,KAAK6G,OAAQipB;EAatDsS,EAAOr3B,cAAclH,UAAUoH,OAAS,SAAUglB,EAAetoB,EAAUmoB,GAEvE9vB,KAAK6G,OAAOpB,GAAKkC,EAASpD,EAC1BvE,KAAK6G,OAAOnB,GAAKiC,EAASnD,EAEtBxE,KAAK4K,SAAS3H,OAAShD,KAAKC,eAE5BF,KAAK6gC,YAAY5Q,EAAejwB,KAAK6G,OAAQipB,GAI7C9vB,KAAK8gC,aAAa7Q,EAAejwB,KAAK6G,OAAQipB,IAyBtDsS,EAAO/vB,YAAc,SAAU8/B,EAAM9pC,EAAQgV,EAAMsiC,IAEzB,mBAAXt3C,IAAqC,OAAXA,KAAmBA,EAAS8pC,EAAKC,OAEtEnyC,KAAKoS,YAAYtO,KAAK/D,MAEtBoiC,EAAOsd,MAAM37C,KAAK/D,KAAMmyC,EAAM9pC,EAAQgV,EAAMsiC,GAM5C3/C,KAAKiD,KAAOm/B,EAAO4B,aAIvB5B,EAAO/vB,YAAYxO,UAAYu+B,EAAOgC,MAAMmC,QAAO,EAAMnE,EAAO/vB,YAAYxO,UAAWu+B,EAAOsd,MAAM77C,UAAW5D,KAAKoS,YAAYxO,WAEhIu+B,EAAO/vB,YAAYxO,UAAUsB,YAAci9B,EAAO/vB,YA0BlD+vB,EAAOm6C,UAAY,SAAUpqC,EAAMxvB,EAAKu5D,EAAgBC,EAAiBnkE,EAAOokE,EAAaC,EAAUC,EAAU/jE,EAASC,GAEtH,IAAK25B,EAAK0B,MAAM2wC,cAAc7hE,GAE1B,OAAO,GAGgB,mBAAhBy5D,IAA+C,OAAhBA,KAEtCA,EAAcjqC,EAAK0B,MAAM5S,SAASte,GAAKxb,MAAQ+0E,GAMnDl8E,KAAKk8E,eAAiBA,EAKtBl8E,KAAKm8E,gBAAkBA,EAKvBn8E,KAAKgsF,kBAAoB3P,GAAY,EAKrCr8E,KAAKisF,kBAAoB3P,GAAY,EAKrCt8E,KAAKksF,gBAAkB9P,EAMvBp8E,KAAK40B,QAAUrc,GAAW,EAM1BvY,KAAK60B,QAAUrc,GAAW,EAK1BxY,KAAK+T,MAAQ,OAMb/T,KAAKmsF,WAAY,EAMjBnsF,KAAKosF,eAAgB,EAMrBpsF,KAAKqsF,eAAiB,EAMtBrsF,KAAKssF,eAAiB,EAOtBtsF,KAAKusF,WAAa,EAKlBvsF,KAAKwsF,QAAUr6C,EAAK0B,MAAM5S,SAASte,GAMnC3iB,KAAK+mF,MAAQ,GAMb/mF,KAAKysF,YAKLzsF,KAAKgmF,UAAY,GAAI5jD,GAAOsqD,SAO5B,KAAK,GAJDC,GAAW3sF,KAAK40B,QAChBg4D,EAAW5sF,KAAK60B,QAChBlL,EAAI,EAECpkB,EAAI,EAAGA,EAAIyS,EAAM3T,OAAQkB,IAClC,CACI,GAAIqiD,GAAOzV,EAAKmC,IAAIsT,OAEhB73C,EAAQ/P,KAAKgmF,UAAU6G,SAAS,GAAIzqD,GAAOo7C,MAAMj4E,EAAGonF,EAAUC,EAAU5sF,KAAKk8E,eAAgBl8E,KAAKm8E,gBAAiB,GAAIv0B,GAE3H5nD,MAAKysF,SAASz0E,EAAME,WAAW3S,IAAMwK,EAAMpD,MAE3C1M,KAAK+R,aAAa41C,GAAQ,GAAI3nD,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,IAC7Dpe,EAAGooF,EACHnoF,EAAGooF,EACHzlF,MAAOnH,KAAKk8E,eACZ90E,OAAQpH,KAAKm8E,kBAGjBxyD,IAEIA,GAAK3pB,KAAKksF,iBAEVviE,EAAI,EACJgjE,EAAW3sF,KAAK40B,QAChBg4D,GAAY5sF,KAAKm8E,gBAAkBn8E,KAAKisF,mBAIxCU,GAAY3sF,KAAKk8E,eAAiBl8E,KAAKgsF,kBAI/C75C,EAAK0B,MAAMi5C,gBAAgBnqE,EAAK3iB,KAAKgmF,WAMrChmF,KAAK+sF,MAAQ,GAAI3qD,GAAOjJ,MAAMgZ,EAAM,EAAG,EAAGxvB,EAAK,GAE/Cyf,EAAOr3B,cAAchH,KAAK/D,KAAMmyC,EAAM,IAAK,IAAK,GAAI/P,EAAO7gC,WAAWG,SAKtE1B,KAAKiD,KAAOm/B,EAAO6B,WAIvB7B,EAAOm6C,UAAU14E,UAAYsF,OAAOkD,OAAO+1B,EAAOr3B,cAAclH,WAChEu+B,EAAOm6C,UAAU14E,UAAUsB,YAAci9B,EAAOm6C,UAOhDn6C,EAAOm6C,UAAUyQ,WAAa,OAO9B5qD,EAAOm6C,UAAU0Q,YAAc,QAO/B7qD,EAAOm6C,UAAU2Q,aAAe,SAOhC9qD,EAAOm6C,UAAU4Q,UAAY,oGAO7B/qD,EAAOm6C,UAAU6Q,UAAY,+DAO7BhrD,EAAOm6C,UAAU8Q,UAAY,wCAO7BjrD,EAAOm6C,UAAU+Q,UAAY,wCAO7BlrD,EAAOm6C,UAAUgR,UAAY,mDAO7BnrD,EAAOm6C,UAAUiR,UAAY,oDAO7BprD,EAAOm6C,UAAUkR,UAAY,oDAO7BrrD,EAAOm6C,UAAUmR,UAAY,yCAO7BtrD,EAAOm6C,UAAUoR,UAAY,kDAO7BvrD,EAAOm6C,UAAUqR,WAAa,6BAO9BxrD,EAAOm6C,UAAUsR,WAAa,oDAW9BzrD,EAAOm6C,UAAU14E,UAAUiqF,cAAgB,SAAU3mF,EAAO4mF,GAE3B,mBAAlBA,KAAiCA,EAAgB,QAE5D/tF,KAAKusF,WAAaplF,EAClBnH,KAAK+T,MAAQg6E,GAgBjB3rD,EAAOm6C,UAAU14E,UAAU6P,QAAU,SAAU4J,EAAS6uE,EAAW6B,EAAkBC,EAAaF,EAAeG,GAE7GluF,KAAKmsF,UAAYA,IAAa,EAC9BnsF,KAAKqsF,eAAiB2B,GAAoB,EAC1ChuF,KAAKssF,eAAiB2B,GAAe,EACrCjuF,KAAK+T,MAAQg6E,GAAiB,OAI1B/tF,KAAKosF,cAFL8B,GAEqB,GAIA,EAGrB5wE,EAAQjZ,OAAS,IAEjBrE,KAAKmT,KAAOmK,IAWpB8kB,EAAOm6C,UAAU14E,UAAUsqF,mBAAqB,WAE5C,GAAI1vE,GAAK,EACLC,EAAK,CAIT,IAFA1e,KAAK8vB,QAED9vB,KAAKmsF,UACT,CACI,GAAIz3E,GAAQ1U,KAAK+mF,MAAMpyE,MAAM,KAEzB3U,MAAKusF,WAAa,EAElBvsF,KAAK8L,OAAO9L,KAAKusF,WAAa73E,EAAMrQ,QAAUrE,KAAKm8E,gBAAkBn8E,KAAKssF,gBAAmBtsF,KAAKssF,gBAAgB,GAIlHtsF,KAAK8L,OAAO9L,KAAKouF,kBAAoBpuF,KAAKk8E,eAAiBl8E,KAAKqsF,gBAAkB33E,EAAMrQ,QAAUrE,KAAKm8E,gBAAkBn8E,KAAKssF,gBAAmBtsF,KAAKssF,gBAAgB,EAI1K,KAAK,GAAInoF,GAAI,EAAGA,EAAIuQ,EAAMrQ,OAAQF,IAClC,CAEI,OAAQnE,KAAK+T,OAET,IAAKquB,GAAOm6C,UAAUyQ,WAClBvuE,EAAK,CACL,MAEJ,KAAK2jB,GAAOm6C,UAAU0Q,YAClBxuE,EAAKze,KAAKmH,MAASuN,EAAMvQ,GAAGE,QAAUrE,KAAKk8E,eAAiBl8E,KAAKqsF,eACjE,MAEJ,KAAKjqD,GAAOm6C,UAAU2Q,aAClBzuE,EAAMze,KAAKmH,MAAQ,EAAOuN,EAAMvQ,GAAGE,QAAUrE,KAAKk8E,eAAiBl8E,KAAKqsF,gBAAmB,EAC3F5tE,GAAMze,KAAKqsF,eAAiB,EAK3B,EAAL5tE,IAEAA,EAAK,GAGTze,KAAKquF,UAAU35E,EAAMvQ,GAAIsa,EAAIC,EAAI1e,KAAKqsF,gBAEtC3tE,GAAM1e,KAAKm8E,gBAAkBn8E,KAAKssF,oBAI1C,CAUI,OATItsF,KAAKusF,WAAa,EAElBvsF,KAAK8L,OAAO9L,KAAKusF,WAAYvsF,KAAKm8E,iBAAiB,GAInDn8E,KAAK8L,OAAO9L,KAAK+mF,MAAM1iF,QAAUrE,KAAKk8E,eAAiBl8E,KAAKqsF,gBAAiBrsF,KAAKm8E,iBAAiB,GAG/Fn8E,KAAK+T,OAET,IAAKquB,GAAOm6C,UAAUyQ,WAClBvuE,EAAK,CACL,MAEJ,KAAK2jB,GAAOm6C,UAAU0Q,YAClBxuE,EAAKze,KAAKmH,MAASnH,KAAK+mF,MAAM1iF,QAAUrE,KAAKk8E,eAAiBl8E,KAAKqsF,eACnE,MAEJ,KAAKjqD,GAAOm6C,UAAU2Q,aAClBzuE,EAAMze,KAAKmH,MAAQ,EAAOnH,KAAK+mF,MAAM1iF,QAAUrE,KAAKk8E,eAAiBl8E,KAAKqsF,gBAAmB,EAC7F5tE,GAAMze,KAAKqsF,eAAiB,EAIpCrsF,KAAK4gC,cAAc9Q,QAEnB9vB,KAAKquF,UAAUruF,KAAK+mF,MAAOtoE,EAAI,EAAGze,KAAKqsF,kBAgB/CjqD,EAAOm6C,UAAU14E,UAAUwqF,UAAY,SAAUv3E,EAAMvS,EAAGC,EAAG6nF,GAIzD,IAAK,GAFDnoF,GAAI,GAAIk+B,GAAOn+B,MAEVsB,EAAI,EAAGA,EAAIuR,EAAKzS,OAAQkB,IAG7B,GAAsB,KAAlBuR,EAAKsB,OAAO7S,GAEZhB,GAAKvE,KAAKk8E,eAAiBmQ,MAK3B,IAAIrsF,KAAKysF,SAAS31E,EAAKoB,WAAW3S,KAAO,IAErCvF,KAAK+sF,MAAMh9E,MAAQ/P,KAAKysF,SAAS31E,EAAKoB,WAAW3S,IACjDrB,EAAEoF,IAAI/E,EAAGC,GACTxE,KAAKiL,OAAOjL,KAAK+sF,MAAO7oF,GAAG,GAE3BK,GAAKvE,KAAKk8E,eAAiBmQ,EAEvB9nF,EAAIvE,KAAKmH,OAET,OAcpBi7B,EAAOm6C,UAAU14E,UAAUuqF,eAAiB,WAExC,GAAIE,GAAc,CAElB,IAAItuF,KAAK+mF,MAAM1iF,OAAS,EAIpB,IAAK,GAFDqQ,GAAQ1U,KAAK+mF,MAAMpyE,MAAM,MAEpBxQ,EAAI,EAAGA,EAAIuQ,EAAMrQ,OAAQF,IAE1BuQ,EAAMvQ,GAAGE,OAASiqF,IAElBA,EAAc55E,EAAMvQ,GAAGE,OAKnC,OAAOiqF,IAYXlsD,EAAOm6C,UAAU14E,UAAU0qF,4BAA8B,SAAUC,GAI/D,IAAK,GAFDC,GAAY,GAEPlpF,EAAI,EAAGA,EAAIvF,KAAK+mF,MAAM1iF,OAAQkB,IACvC,CACI,GAAImpF,GAAQ1uF,KAAK+mF,MAAMxhF,GACnBopF,EAAOD,EAAMx2E,WAAW,IAExBlY,KAAKysF,SAASkC,IAAS,IAAOH,GAAqB,OAAVE,KAEzCD,EAAYA,EAAUtzE,OAAOuzE,IAIrC,MAAOD,IAcXrsD,EAAOm6C,UAAU14E,UAAU+qF,aAAe,SAAUrqF,EAAGC,GAEnD,GAAIxE,KAAK40B,UAAYrwB,GAAKvE,KAAK60B,UAAYrwB,EAA3C,CAWA,IANA,GAAIqqF,GAAQtqF,EAAIvE,KAAK40B,QACjBk6D,EAAQtqF,EAAIxE,KAAK60B,QAEjBk6D,EAAS/uF,KAAKmyC,KAAK0B,MAAMywC,aAAatkF,KAAK+sF,MAAMpqE,KAAKqsE,YACtD7qF,EAAI4qF,EAAO1qF,OAERF,KAEH4qF,EAAO5qF,GAAGI,GAAKsqF,EACfE,EAAO5qF,GAAGK,GAAKsqF,EACf7uF,KAAK+R,aAAa+8E,EAAO5qF,GAAGyjD,MAAM73C,MAAMxL,EAAIwqF,EAAO5qF,GAAGI,EACtDtE,KAAK+R,aAAa+8E,EAAO5qF,GAAGyjD,MAAM73C,MAAMvL,EAAIuqF,EAAO5qF,GAAGK,CAG1DxE,MAAKmuF,uBAQThlF,OAAOC,eAAeg5B,EAAOm6C,UAAU14E,UAAW,QAE9CwF,IAAK,WAED,MAAOrJ,MAAK+mF,OAIhBz9E,IAAK,SAAUC,GAEX,GAAI0lF,EAIAA,GAFAjvF,KAAKosF,cAEK7iF,EAAM2lF,cAIN3lF,EAGV0lF,IAAYjvF,KAAK+mF,QAEjB/mF,KAAK+mF,MAAQkI,EAEbjvF,KAAKuuF,4BAA4BvuF,KAAKmsF,WAEtCnsF,KAAKmuF,yBAWjBhlF,OAAOC,eAAeg5B,EAAOm6C,UAAU14E,UAAW,YAE9CwF,IAAK,WAED,MAAOrJ,MAAK+sF,MAAM77B,UAItB5nD,IAAK,SAAUC,GAEXvJ,KAAK+sF,MAAM77B,SAAW3nD,EACtBvJ,KAAKmuF,wBAwBb/rD,EAAO+sD,SAAW,SAAUh9C,EAAM5tC,EAAGC,EAAGme,EAAK5S,GAEzCqyB,EAAO12B,OAAO3H,KAAK/D,KAAMmyC,EAAM5tC,EAAGC,EAAGme,EAAK5S,GAM1C/P,KAAKovF,WAAY,EAMjBpvF,KAAKqvF,UAAY,KAMjBrvF,KAAKsvF,GAAK,EAMVtvF,KAAKuvF,WAAY,EAMjBvvF,KAAKwvF,UAAY,KAMjBxvF,KAAKyvF,GAAK,GAIdrtD,EAAO+sD,SAAStrF,UAAYsF,OAAOkD,OAAO+1B,EAAO12B,OAAO7H,WACxDu+B,EAAO+sD,SAAStrF,UAAUsB,YAAci9B,EAAO+sD,SAQ/C/sD,EAAO+sD,SAAStrF,UAAU2V,OAAS,WAE3BxZ,KAAKovF,YAELpvF,KAAKsvF,KAEDtvF,KAAKsvF,GAELtvF,KAAKoG,MAAMkD,IAAItJ,KAAKqvF,UAAUrvF,KAAKsvF,IAAI/qF,EAAGvE,KAAKqvF,UAAUrvF,KAAKsvF,IAAI9qF,GAIlExE,KAAKovF,WAAY,GAIrBpvF,KAAKuvF,YAELvvF,KAAKyvF,KAEDzvF,KAAKyvF,GAELzvF,KAAKgI,MAAQhI,KAAKwvF,UAAUxvF,KAAKyvF,IAAI3vE,EAIrC9f,KAAKuvF,WAAY,IAY7BntD,EAAO+sD,SAAStrF,UAAU6rF,OAAS,aASnCttD,EAAO+sD,SAAStrF,UAAU8rF,aAAe,SAAS/4E,GAE9C5W,KAAKwvF,UAAY54E,EACjB5W,KAAKyvF,GAAK74E,EAAKvS,OAAS,EACxBrE,KAAKgI,MAAQhI,KAAKwvF,UAAUxvF,KAAKyvF,IAAI3vE,EACrC9f,KAAKuvF,WAAY,GAUrBntD,EAAO+sD,SAAStrF,UAAU+rF,aAAe,SAASh5E,GAE9C5W,KAAKqvF,UAAYz4E,EACjB5W,KAAKsvF,GAAK14E,EAAKvS,OAAS,EACxBrE,KAAKoG,MAAMkD,IAAItJ,KAAKqvF,UAAUrvF,KAAKsvF,IAAI/qF,EAAGvE,KAAKqvF,UAAUrvF,KAAKsvF,IAAI9qF,GAClExE,KAAKovF,WAAY,GAgBrBhtD,EAAO+sD,SAAStrF,UAAUwkB,MAAQ,SAAS9jB,EAAGC,EAAGm/E,GA4B7C,MA1BsB,mBAAXA,KAA0BA,EAAS,GAE9C3jF,KAAKoyC,MAAM/K,MAAM9iC,EAAGC,GACpBxE,KAAK2H,SAASpD,EAAIA,EAClBvE,KAAK2H,SAASnD,EAAIA,EAClBxE,KAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,EACdx4C,KAAKiI,SAAU,EACfjI,KAAKoI,YAAa,EAClBpI,KAAKolF,mBAAoB,EAEzBplF,KAAK2jF,OAASA,EAEV3jF,KAAKs0D,MAELt0D,KAAKs0D,KAAKjsC,MAAM9jB,EAAGC,GAAG,GAAO,GAGjCxE,KAAKwgD,OAAO,GAAK,EAEjBxgD,KAAKgI,MAAQ,EACbhI,KAAKoG,MAAMkD,IAAI,GAEftJ,KAAKovF,WAAY,EACjBpvF,KAAKuvF,WAAY,EAEVvvF,MAkBXoiC,EAAOub,KAUHC,UAAW,SAAUoU,EAAS10B,GAE1BA,EAAQA,GAAS,GAAI8E,GAAOn+B,KAE5B,IAAI4rF,GAAM79B,EAAQnC,wBACdigC,EAAY99B,EAAQ89B,WAAax8E,SAASghD,KAAKw7B,WAAa,EAC5DC,EAAa/9B,EAAQ+9B,YAAcz8E,SAASghD,KAAKy7B,YAAc,EAI/D9gC,EAAY,EACZ+gC,EAAa,CAgBjB,OAd4B,eAAxB18E,SAAS28E,YAEThhC,EAAYvrD,OAAOwsF,aAAe58E,SAAS67C,gBAAgBF,WAAa+C,EAAQ/C,WAAa,EAC7F+gC,EAAatsF,OAAOysF,aAAe78E,SAAS67C,gBAAgB6gC,YAAch+B,EAAQg+B,YAAc,IAIhG/gC,EAAYvrD,OAAOwsF,aAAe58E,SAASghD,KAAKrF,WAAa+C,EAAQ/C,WAAa,EAClF+gC,EAAatsF,OAAOysF,aAAe78E,SAASghD,KAAK07B,YAAch+B,EAAQg+B,YAAc,GAGzF1yD,EAAM/4B,EAAIsrF,EAAI1pD,KAAO6pD,EAAaD,EAClCzyD,EAAM94B,EAAIqrF,EAAI7nD,IAAMinB,EAAY6gC,EAEzBxyD,GAiBX/yB,UAAW,SAAUynD,EAASC,GAM1B,MAJuB,mBAAZA,KAA2BA,EAAU,GAEhDD,EAAUA,IAAYA,EAAQ3rB,SAAW2rB,EAAQ,GAAKA,EAEjDA,GAAgC,IAArBA,EAAQ3rB,SAMbrmC,KAAKowF,UAAUp+B,EAAQnC,wBAAyBoC,IAJhD,GAkBfm+B,UAAW,SAAUC,EAAQp+B,GAEzBA,GAAWA,GAAW,CAEtB,IAAItqB,IAAWxgC,MAAO,EAAGC,OAAQ,EAAG++B,KAAM,EAAGD,MAAO,EAAG8B,IAAK,EAAGC,OAAQ,EAKvE,OAHAN,GAAOxgC,OAASwgC,EAAOzB,MAAQmqD,EAAOnqD,MAAQ+rB,IAAYtqB,EAAOxB,KAAOkqD,EAAOlqD,KAAO8rB,GACtFtqB,EAAOvgC,QAAUugC,EAAOM,OAASooD,EAAOpoD,OAASgqB,IAAYtqB,EAAOK,IAAMqoD,EAAOroD,IAAMiqB,GAEhFtqB,GAYXyqB,eAAgB,SAAUD,GAEtBA,EAAS,MAAQA,EAASnyD,KAAKswF,cAAgB,IAAMn+B,EAAO9rB,SAAWrmC,KAAKuwF,iBAAiBp+B,GAAUA,CAEvG,IAAI9sC,GAAI8sC,EAAc,MAClB13B,EAAI03B,EAAe,MAYvB,OAViB,kBAAN9sC,KAEPA,EAAIA,EAAEthB,KAAKouD,IAGE,kBAAN13B,KAEPA,EAAIA,EAAE12B,KAAKouD,IAGR9sC,EAAIoV,GAUf61D,YAAa,WAET,OACInpF,MAAOnH,KAAKwwF,cACZppF,OAAQpH,KAAKywF,iBAkBrBC,WAAY,SAAU1+B,EAASC,GAE3B,GAAItoC,GAAI3pB,KAAKuwF,iBAAiBv+B,EAASC,EAEvC,SAAStoC,GAAKA,EAAEse,QAAU,GAAKte,EAAEuc,OAAS,GAAKvc,EAAEqe,KAAOhoC,KAAKwwF,eAAiB7mE,EAAEwc,MAAQnmC,KAAKywF,gBA6BjG5mC,qBAAsB,SAAU8mC,GAE5B,GAAIC,GAASltF,OAAOktF,OAChBniC,EAAcmiC,EAAOniC,aAAemiC,EAAOC,gBAAkBD,EAAOE,aAExE,IAAIriC,GAA2C,gBAArBA,GAAYxrD,KAGlC,MAAOwrD,GAAYxrD,IAElB,IAA2B,gBAAhBwrD,GAGZ,MAAOA,EAGX,IAAIsiC,GAAW,mBACXC,EAAY,mBAEhB,IAAwB,WAApBL,EAEA,MAAQC,GAAOxpF,OAASwpF,EAAOzpF,MAAS4pF,EAAWC,CAElD,IAAwB,aAApBL,EAEL,MAAQ3wF,MAAKywF,eAAiBzwF,KAAKwwF,cAAiBO,EAAWC,CAE9D,IAAwB,uBAApBL,GAA0E,gBAAvBjtF,QAAO+qD,YAG/D,MAA+B,KAAvB/qD,OAAO+qD,aAA4C,MAAvB/qD,OAAO+qD,YAAuBsiC,EAAWC,CAE5E,IAAIttF,OAAOutF,WAChB,CACI,GAAIvtF,OAAOutF,WAAW,2BAA2BC,QAE7C,MAAOH,EAEN,IAAIrtF,OAAOutF,WAAW,4BAA4BC,QAEnD,MAAOF,GAIf,MAAQhxF,MAAKywF,eAAiBzwF,KAAKwwF,cAAiBO,EAAWC,IAcvE7nF,OAAOC,eAAeg5B,EAAOub,IAAK,WAE9Bt0C,IAAK,WACD,MAAO3F,QAAOysF,aAAe78E,SAAS67C,gBAAgB6gC,cAa9D7mF,OAAOC,eAAeg5B,EAAOub,IAAK,WAE9Bt0C,IAAK,WACD,MAAO3F,QAAOwsF,aAAe58E,SAAS67C,gBAAgBF,aAa9D9lD,OAAOC,eAAeg5B,EAAOub,IAAK,iBAE9Bt0C,IAAK,WAED,GAAIhE,GAAIiO,SAAS67C,gBAAgBgiC,YAC7B7rF,EAAI5B,OAAOkiC,UAEf,OAAWtgC,GAAJD,EAAQC,EAAID,KAc3B8D,OAAOC,eAAeg5B,EAAOub,IAAK,kBAE9Bt0C,IAAK,WAED,GAAIhE,GAAIiO,SAAS67C,gBAAgBiiC,aAC7B9rF,EAAI5B,OAAOmiC,WAEf,OAAWvgC,GAAJD,EAAQC,EAAID,KAc3B8D,OAAOC,eAAeg5B,EAAOub,IAAK,iBAE9Bt0C,IAAK,WAED,GAAI7D,GAAI8N,SAAS67C,eACjB,OAAOjtD,MAAKgT,IAAI1P,EAAE2rF,YAAa3rF,EAAE6rF,YAAa7rF,EAAE8rF,gBAcxDnoF,OAAOC,eAAeg5B,EAAOub,IAAK,kBAE9Bt0C,IAAK,WAED,GAAI7D,GAAI8N,SAAS67C,eACjB,OAAOjtD,MAAKgT,IAAI1P,EAAE4rF,aAAc5rF,EAAE+rF,aAAc/rF,EAAEgsF,iBAkB1DpvD,EAAO4b,QAWH3xC,OAAQ,SAAUlF,EAAOC,EAAQlB,GAE7BiB,EAAQA,GAAS,IACjBC,EAASA,GAAU,GAEnB,IAAIiM,GAASC,SAASC,cAAc,SAYpC,OAVkB,gBAAPrN,IAA0B,KAAPA,IAE1BmN,EAAOnN,GAAKA,GAGhBmN,EAAOlM,MAAQA,EACfkM,EAAOjM,OAASA,EAEhBiM,EAAOD,MAAMq+E,QAAU,QAEhBp+E,GAYX+F,mBAAoB,SAAU/F,EAAQ+S,GAMlC,MAJAA,GAAQA,GAAS,aAEjB/S,EAAOD,MAAM4F,gBAAkBoN,EAExB/S,GAYX6qC,eAAgB,SAAU7qC,EAAQ9J,GAQ9B,MANAA,GAAQA,GAAS,OAEjB8J,EAAOD,MAAMs+E,cAAgBnoF,EAC7B8J,EAAOD,MAAM,mBAAqB7J,EAClC8J,EAAOD,MAAM,gBAAkB7J,EAExB8J,GAYX4qC,cAAe,SAAU5qC,EAAQ9J,GAY7B,MAVAA,GAAQA,GAAS,OAEjB8J,EAAOD,MAAM,yBAA2B7J,EACxC8J,EAAOD,MAAM,uBAAyB7J,EACtC8J,EAAOD,MAAM,sBAAwB7J,EACrC8J,EAAOD,MAAM,oBAAsB7J,EACnC8J,EAAOD,MAAM,mBAAqB7J,EAClC8J,EAAOD,MAAM,eAAiB7J,EAC9B8J,EAAOD,MAAM,+BAAiC,mBAEvCC,GAcXmiD,SAAU,SAAUniD,EAAQhL,EAAQspF,GAEhC,GAAI5nF,EA+BJ,OA7B8B,mBAAnB4nF,KAAkCA,GAAiB,GAE1DtpF,IAEsB,gBAAXA,GAGP0B,EAASuJ,SAAS65C,eAAe9kD,GAEV,gBAAXA,IAA2C,IAApBA,EAAOg+B,WAG1Ct8B,EAAS1B,IAKZ0B,IAEDA,EAASuJ,SAASghD,MAGlBq9B,GAAkB5nF,EAAOqJ,QAEzBrJ,EAAOqJ,MAAMw+E,SAAW,UAG5B7nF,EAAOsnD,YAAYh+C,GAEZA,GAUX8iD,cAAe,SAAU9iD,GAEjBA,EAAOw3C,YAEPx3C,EAAOw3C,WAAWj+C,YAAYyG,IAkBtCjC,aAAc,SAAUN,EAASqyE,EAAYC,EAAYtuD,EAAQE,EAAQquD,EAAOC,GAI5E,MAFAxyE,GAAQM,aAAa0jB,EAAQuuD,EAAOC,EAAOtuD,EAAQmuD,EAAYC,GAExDtyE,GAgBXmyE,oBAAqB,SAAUnyE,EAASvH,GAQpC,MANAuH,GAA+B,sBAAIvH,EACnCuH,EAAkC,yBAAIvH,EACtCuH,EAAgC,uBAAIvH,EACpCuH,EAAqC,4BAAIvH,EACzCuH,EAAiC,wBAAIvH,EAE9BuH,GAWXkyE,oBAAqB,SAAUlyE,GAE3B,MAAQA,GAA+B,uBAAKA,EAAkC,0BAAKA,EAAgC,wBAAKA,EAAqC,6BAAKA,EAAiC,yBAYvM+gF,uBAAwB,SAAUx+E,GAU9B,MARAA,GAAOD,MAAM,mBAAqB,gBAClCC,EAAOD,MAAM,mBAAqB,cAClCC,EAAOD,MAAM,mBAAqB,mBAClCC,EAAOD,MAAM,mBAAqB,4BAClCC,EAAOD,MAAM,mBAAqB,oBAClCC,EAAOD,MAAM,mBAAqB,YAClCC,EAAOD,MAAM0+E,oBAAsB,mBAE5Bz+E,GAYX0+E,yBAA0B,SAAU1+E,GAKhC,MAHAA,GAAOD,MAAM,mBAAqB,OAClCC,EAAOD,MAAM0+E,oBAAsB,UAE5Bz+E,IAef+uB,EAAO4b,OAAOJ,UAAYxb,EAAOub,IAAIC,UAUrCxb,EAAO4b,OAAOoU,eAAiBhwB,EAAOub,IAAIyU,eAc1ChwB,EAAOmyB,OAAS,SAAUpiB,GAKtBnyC,KAAKmyC,KAAOA,EAQZnyC,KAAKqsD,SAAU,EAMfrsD,KAAKgyF,KAAM,EAMXhyF,KAAKksD,UAAW,EAMhBlsD,KAAK6+C,aAAc,EAMnB7+C,KAAKo0D,SAAU,EAMfp0D,KAAKiyF,MAAO,EAMZjyF,KAAKkyF,YAAa,EAMlBlyF,KAAKmyF,QAAS,EAMdnyF,KAAKoyF,WAAY,EAMjBpyF,KAAKssD,SAAU,EAMftsD,KAAKqyF,UAAW,EAMhBryF,KAAKsyF,OAAQ,EAMbtyF,KAAKuyF,OAAQ,EAMbvyF,KAAKwyF,SAAU,EAMfxyF,KAAKyyF,cAAe,EAQpBzyF,KAAKqT,QAAS,EAMdrT,KAAK0yF,MAAO,EAMZ1yF,KAAK2yF,YAAa,EAMlB3yF,KAAK4yF,cAAe,EAMpB5yF,KAAK6mB,OAAQ,EAMb7mB,KAAK6yF,QAAS,EAMd7yF,KAAK8yF,OAAQ,EAMb9yF,KAAK2kE,aAAc,EAMnB3kE,KAAK+yF,YAAa,EAMlB/yF,KAAKgzF,WAAY,EAMjBhzF,KAAKizF,cAAe,EAMpBjzF,KAAKkzF,YAAa,EAQlBlzF,KAAKu4D,OAAQ,EAMbv4D,KAAKw4D,WAAY,EAOjBx4D,KAAKimE,WAAa,KAQlBjmE,KAAKmzF,OAAQ,EAMbnzF,KAAKusD,QAAS,EAMdvsD,KAAKozF,UAAW,EAMhBpzF,KAAKqzF,SAAU,EAMfrzF,KAAKszF,IAAK,EAMVtzF,KAAKuzF,UAAY,EAMjBvzF,KAAKwzF,SAAU,EAMfxzF,KAAKyzF,eAAiB,EAMtBzzF,KAAK0zF,cAAe,EAMpB1zF,KAAK2zF,QAAS,EAMd3zF,KAAK4zF,OAAQ,EAMb5zF,KAAK6zF,QAAS,EAMd7zF,KAAKosD,QAAS,EAMdpsD,KAAK8zF,MAAO,EAQZ9zF,KAAK+zF,WAAY,EAMjB/zF,KAAKu1D,UAAW,EAMhBv1D,KAAKg0F,KAAM,EAMXh0F,KAAKi0F,MAAO,EAMZj0F,KAAKk0F,KAAM,EAMXl0F,KAAKm0F,KAAM,EAOXn0F,KAAKo0F,KAAM,EAMXp0F,KAAKq0F,MAAO,EAQZr0F,KAAKs0F,QAAS,EAMdt0F,KAAKu0F,SAAU,EAMfv0F,KAAKmsD,MAAO,EAMZnsD,KAAKw0F,WAAa,EAMlBx0F,KAAKy0F,cAAe,EAMpBz0F,KAAK00F,cAAe,EAMpB10F,KAAKisD,YAAa,EAMlBjsD,KAAKuxD,kBAAoB,GAMzBvxD,KAAK2xD,iBAAmB,GAMxB3xD,KAAKsxD,oBAAqB,EAG1BtxD,KAAK20F,WACL30F,KAAK40F,cACL50F,KAAK60F,gBACL70F,KAAK80F,cACL90F,KAAK+0F,eACL/0F,KAAKg1F,iBACLh1F,KAAKi1F,eAIT7yD,EAAOmyB,OAAOurB,eAAgB,EAE9B19C,EAAOmyB,OAAO1wD,WAOV8wF,SAAU,WAEN,GAAI7mD,GAAK5qC,UAAUC,SAEf,oBAAmBgV,KAAK21B,GAExB9tC,KAAKk1F,MAAO,EAEP,SAAS/8E,KAAK21B,IAAO,kBAAkB31B,KAAK21B,IAAO,sBAAsB31B,KAAK21B,GAEnF9tC,KAAKm1F,QAAS,EAIT,UAAUh9E,KAAK21B,GAEpB9tC,KAAKssD,SAAU,EAEV,OAAOn0C,KAAK21B,GAEjB9tC,KAAKqyF,UAAW,EAEX,kBAAkBl6E,KAAK21B,GAE5B9tC,KAAKgyF,KAAM,EAEN,QAAQ75E,KAAK21B,GAElB9tC,KAAKsyF,OAAQ,EAER,SAASn6E,KAAK21B,GAEnB9tC,KAAKuyF,OAAQ,EAER,UAAUp6E,KAAK21B,KAEpB9tC,KAAKwyF,SAAU,EAEX,iBAAiBr6E,KAAK21B,KAEtB9tC,KAAKyyF,cAAe,KAIxBzyF,KAAKwyF,SAAWxyF,KAAKuyF,OAAUvyF,KAAKsyF,OAAStyF,KAAK8zF,QAAS,GAAU9zF,KAAKqyF,YAE1EryF,KAAKqsD,SAAU,IAIfrsD,KAAKyyF,cAAkB,cAAct6E,KAAK21B,IAAS,SAAS31B,KAAK21B,MAEjE9tC,KAAKqsD,SAAU,IAUvB2oC,eAAgB,WAEZh1F,KAAKqT,SAAW3P,OAAiC,0BAAK1D,KAAKksD,QAE3D,KACIlsD,KAAK4yF,eAAiBA,aAAawC,QACrC,MAAOC,GACLr1F,KAAK4yF,cAAe,EAGxB5yF,KAAK0yF,QAAShvF,OAAa,MAAOA,OAAmB,YAAOA,OAAiB,UAAOA,OAAa,MACjG1D,KAAK2yF,aAAejvF,OAA0B,kBAC9C1D,KAAK6mB,MAAQ,WAAgB,IAAM,GAAIxT,GAASC,SAASC,cAAe,SAAyE,OAA7BF,GAAO4mB,cAAe,IAAiBv2B,OAAO4xF,wBAA2BjiF,EAAOG,WAAY,UAAaH,EAAOG,WAAY,uBAA4B,MAAOmI,GAAM,OAAO,MAI5R3b,KAAK6mB,MAFU,OAAf7mB,KAAK6mB,OAAkB7mB,KAAK6mB,SAAU,GAEzB,GAIA,EAGjB7mB,KAAK6yF,SAAWnvF,OAAe,OAE/B1D,KAAK2kE,YAAc,sBAAwBrxD,WAAY,yBAA2BA,WAAY,4BAA8BA,UAE5HtT,KAAKkzF,WAAsC,eAAxB5/E,SAAS28E,YAA+B,GAAQ,EAEnEjwF,KAAKizF,gBAAkB/vF,UAAU+vF,cAAgB/vF,UAAUqyF,oBAAsBryF,UAAUsyF,iBAAmBtyF,UAAUuyF,iBAU5HR,YAAa,YAEL,gBAAkB3hF,UAAS67C,iBAC1BzrD,OAAOR,UAAUwyF,gBAAkBhyF,OAAOR,UAAUwyF,eAAiB,KAEtE11F,KAAKu4D,OAAQ,IAGb70D,OAAOR,UAAUyyF,kBAAoBjyF,OAAOR,UAAU0yF,kBAEtD51F,KAAKw4D,WAAY,GAGhBx4D,KAAKksD,WAGF,WAAaxoD,SAAW1D,KAAKszF,IAAM,cAAgB5vF,QAGnD1D,KAAKimE,WAAa,QAEb,gBAAkBviE,QAGvB1D,KAAKimE,WAAa,aAEbjmE,KAAKqzF,SAAW,oBAAsB3vF,UAG3C1D,KAAKimE,WAAa,oBAW9BxR,uBAAwB,WAapB,IAAK,GAXDohC,IACA,oBACA,oBACA,0BACA,0BACA,sBACA,sBACA,uBACA,wBAGK1xF,EAAI,EAAGA,EAAI0xF,EAAGxxF,OAAQF,IAE3B,GAAInE,KAAKmyC,KAAK9+B,OAAOwiF,EAAG1xF,IAExB,CACInE,KAAKisD,YAAa,EAClBjsD,KAAKuxD,kBAAoBskC,EAAG1xF,EAC5B,OAIR,GAAI2xF,IACA,mBACA,iBACA,yBACA,uBACA,qBACA,mBACA,sBACA,oBAGJ,IAAI91F,KAAKisD,WAEL,IAAK,GAAI9nD,GAAI,EAAGA,EAAI2xF,EAAIzxF,OAAQF,IAE5B,GAAImP,SAASwiF,EAAI3xF,IACjB,CACInE,KAAK2xD,iBAAmBmkC,EAAI3xF,EAC5B,OAMRT,OAAgB,SAAK8tD,QAA8B,uBAEnDxxD,KAAKsxD,oBAAqB,IAUlCujC,cAAe,WAEX,GAAI/mD,GAAK5qC,UAAUC,SAqEnB,IAnEI,QAAQgV,KAAK21B,GAEb9tC,KAAKmzF,OAAQ,EAER,SAASh7E,KAAK21B,GAEnB9tC,KAAKusD,QAAS,EAET,WAAWp0C,KAAK21B,GAErB9tC,KAAKozF,UAAW,EAEX,UAAUj7E,KAAK21B,GAEpB9tC,KAAKqzF,SAAU,EAEV,cAAcl7E,KAAK21B,IAAO9tC,KAAKgyF,IAEpChyF,KAAK0zF,cAAe,EAEf,mBAAmBv7E,KAAK21B,IAE7B9tC,KAAKszF,IAAK,EACVtzF,KAAKuzF,UAAY37E,SAASm+E,OAAOC,GAAI,KAEhC,SAAS79E,KAAK21B,GAEnB9tC,KAAK2zF,QAAS,EAET,QAAQx7E,KAAK21B,GAElB9tC,KAAK4zF,OAAQ,EAER,SAASz7E,KAAK21B,GAEnB9tC,KAAK6zF,QAAS,EAET,uCAAuC17E,KAAK21B,KAEjD9tC,KAAKszF,IAAK,EACVtzF,KAAKwzF,SAAU,EACfxzF,KAAKyzF,eAAiB77E,SAASm+E,OAAOC,GAAI,IAC1Ch2F,KAAKuzF,UAAY37E,SAASm+E,OAAOE,GAAI,KAIrC,OAAO99E,KAAK21B,KAEZ9tC,KAAK8zF,MAAO,GAIZ5wF,UAAsB,aAEtBlD,KAAKosD,QAAS,GAGY,mBAAnB1oD,QAAO0wD,UAEdp0D,KAAKo0D,SAAU,GAGI,mBAAZ8hC,UAA8C,mBAAZC,WAEzCn2F,KAAKiyF,MAAO,GAGZjyF,KAAKiyF,KAEL,IACIjyF,KAAKkyF,WAA2C,mBAAtBiE,SAAQ,UAEtC,MAAMd,GAEFr1F,KAAKkyF,YAAa,EAS1B,GALIhvF,UAAsB,aAEtBlD,KAAKksD,UAAW,GAGhBlsD,KAAKksD,SAEL,IACIlsD,KAAK6+C,YAAmC,mBAAbC,UAE/B,MAAMu2C,GAEFr1F,KAAK6+C,aAAc,EAIE,mBAAlBn7C,QAAOyuF,SAEdnyF,KAAKmyF,QAAS,GAGd,YAAYh6E,KAAK21B,KAEjB9tC,KAAKoyF,WAAY,IAUzBwC,YAAa,WAET50F,KAAK+zF,YAAerwF,OAAe,MACnC1D,KAAKu1D,YAAc7xD,OAA2B,qBAAKA,OAAqB,aACxE,IAAI0yF,GAAe9iF,SAASC,cAAc,SACtC0D,GAAS,CAEb,MACQA,IAAWm/E,EAAaC,eAEpBD,EAAaC,YAAY,8BAA8Bh9C,QAAQ,OAAQ,MACvEr5C,KAAKg0F,KAAM,IAGXoC,EAAaC,YAAY,4BAA4Bh9C,QAAQ,OAAQ,KAAO+8C,EAAaC,YAAY,eAAeh9C,QAAQ,OAAQ,OACpIr5C,KAAKi0F,MAAO,GAGZmC,EAAaC,YAAY,eAAeh9C,QAAQ,OAAQ,MACxDr5C,KAAKk0F,KAAM,GAMXkC,EAAaC,YAAY,yBAAyBh9C,QAAQ,OAAQ,MAClEr5C,KAAKm0F,KAAM,IAGXiC,EAAaC,YAAY,iBAAmBD,EAAaC,YAAY,cAAch9C,QAAQ,OAAQ,OACnGr5C,KAAKo0F,KAAM,GAGXgC,EAAaC,YAAY,+BAA+Bh9C,QAAQ,OAAQ,MACxEr5C,KAAKq0F,MAAO,IAGtB,MAAO14E,MAUbo5E,aAAc,WAEV/0F,KAAKw0F,WAAa9wF,OAAyB,kBAAK,EAChD1D,KAAKs0F,OAAgE,IAAvDpxF,UAAUC,UAAUC,cAAcC,QAAQ,UACxDrD,KAAKu0F,QAA8B,GAAnBv0F,KAAKw0F,YAAmBx0F,KAAKs0F,OAC7Ct0F,KAAKmsD,KAA4D,IAArDjpD,UAAUC,UAAUC,cAAcC,QAAQ,QAIlDrD,KAAK+yF,WAFgB,mBAAduD,YAEW,GAIA,EAGK,mBAAhBhZ,cAAqD,mBAAfj8C,aAAqD,mBAAhBg8C,eAElFr9E,KAAKy0F,aAAez0F,KAAKu2F,uBACzBn0D,EAAOmyB,OAAOurB,cAAgB9/E,KAAKy0F,cAGvCz0F,KAAK00F,aAAuC,mBAAhBpX,cAA4D,mBAAtBkZ,oBAA2D,mBAAfC,aAAoD,OAAtBz2F,KAAKy0F,cAAyBz0F,KAAK02F,gCAE/KxzF,UAAUyzF,QAAUzzF,UAAUyzF,SAAWzzF,UAAU0zF,eAAiB1zF,UAAU2zF,YAAc3zF,UAAU4zF,UAElG5zF,UAAUyzF,UAEV32F,KAAKgzF,WAAY,IAWzBuD,qBAAsB,WAElB,GAAIlxF,GAAI,GAAIi4E,aAAY,GACpBh4E,EAAI,GAAI+7B,YAAWh8B,GACnBE,EAAI,GAAI83E,aAAYh4E,EAOxB,OALAC,GAAE,GAAK,IACPA,EAAE,GAAK,IACPA,EAAE,GAAK,IACPA,EAAE,GAAK,IAEK,YAARC,EAAE,IAEK,EAGC,YAARA,EAAE,IAEK,EAKA,MAWfmxF,8BAA+B,WAE3B,GAAiC,mBAAtBF,mBAEP,OAAO,CAGX,IAAIO,GAAOzjF,SAASC,cAAc,UAC9B4pE,EAAM4Z,EAAKvjF,WAAW,KAE1B,KAAK2pE,EAED,OAAO,CAGX,IAAIv9C,GAAQu9C,EAAI6Z,gBAAgB,EAAG,EAEnC,OAAOp3D,GAAMhpB,eAAgB4/E,oBASjC1B,YAAa,WAET,GACImC,GADAC,EAAK5jF,SAASC,cAAc,KAE5B4jF,GACAC,gBAAmB,oBACnBC,WAAc,eACdC,YAAe,gBACfC,aAAgB,iBAChBzkF,UAAa,YAIjBQ,UAASghD,KAAKlD,aAAa8lC,EAAI,KAE/B,KAAK,GAAIM,KAAKL,GAEU1pF,SAAhBypF,EAAG9jF,MAAMokF,KAETN,EAAG9jF,MAAMokF,GAAK,2BACdP,EAAQvzF,OAAO+zF,iBAAiBP,GAAIQ,iBAAiBP,EAAWK,IAIxElkF,UAASghD,KAAK1nD,YAAYsqF,GAC1Bl3F,KAAK8yF,MAAmBrlF,SAAVwpF,GAAuBA,EAAM5yF,OAAS,GAAe,SAAV4yF,GAU7DU,aAAc,SAAU10F,GAEpB,MAAY,OAARA,GAAiBjD,KAAKk0F,KAEf,EAEM,OAARjxF,IAAkBjD,KAAKg0F,KAAOh0F,KAAKi0F,OAEjC,EAEM,OAARhxF,GAAiBjD,KAAKo0F,KAEpB,EAEM,QAARnxF,GAAkBjD,KAAKi0F,MAErB,EAEM,OAARhxF,GAAiBjD,KAAKm0F,KAEpB,EAEM,QAARlxF,GAAkBjD,KAAKq0F,MAErB,GAGJ,GAYXuD,cAAe,WAEX,MAAIl0F,QAAOH,SAAWG,OAAOH,QAAiB,SAEnC,EAGPG,OAAOH,UAEPA,QAAQs0F,UACRt0F,QAAQu0F,aAEJv0F,QAAQusB,OAERvsB,QAAQusB,QAGRvsB,QAAkB,UAEXA,QAAkB,SAAEc,OAAS,GAIrC,IAMf+9B,EAAOmyB,OAAO1wD,UAAUsB,YAAci9B,EAAOmyB,OAS7CnyB,EAAOmyB,OAAOwjC,sBAAwB,WAElC,GAAI7G,GAAUxtF,OAAOR,UAAUC,UAAU60F,MAAM,iCAC/C,OAAO9G,IAAWA,EAAQ,GAAK,KAiBnC9uD,EAAOkzB,sBAAwB,SAASnjB,EAAM8lD,GAEX,mBAApBA,KAAmCA,GAAkB,GAKhEj4F,KAAKmyC,KAAOA,EAMZnyC,KAAKgzD,WAAY,EAKjBhzD,KAAKi4F,gBAAkBA,CASvB,KAAK,GAPD/9E,IACA,KACA,MACA,SACA,KAGK3V,EAAI,EAAGA,EAAI2V,EAAQ7V,SAAWX,OAAOyW,sBAAuB5V,IAEjEb,OAAOyW,sBAAwBzW,OAAOwW,EAAQ3V,GAAK,yBACnDb,OAAO0W,qBAAuB1W,OAAOwW,EAAQ3V,GAAK,uBAOtDvE,MAAKk4F,eAAgB,EAMrBl4F,KAAKm4F,QAAU,KAMfn4F,KAAKo4F,WAAa,MAItBh2D,EAAOkzB,sBAAsBzxD,WAMzBuL,MAAO,WAEHpP,KAAKgzD,WAAY,CAEjB,IAAInV,GAAQ79C,MAEP0D,OAAOyW,uBAAyBna,KAAKi4F,iBAEtCj4F,KAAKk4F,eAAgB,EAErBl4F,KAAKm4F,QAAU,WACX,MAAOt6C,GAAMw6C,oBAGjBr4F,KAAKo4F,WAAa10F,OAAOgX,WAAW1a,KAAKm4F,QAAS,KAIlDn4F,KAAKk4F,eAAgB,EAErBl4F,KAAKm4F,QAAU,SAAUjkD,GACrB,MAAO2J,GAAMy6C,UAAUpkD,IAG3Bl0C,KAAKo4F,WAAa10F,OAAOyW,sBAAsBna,KAAKm4F,WAU5DG,UAAW,SAAUC,GAGjBv4F,KAAKmyC,KAAK34B,OAAOtX,KAAKmoC,MAAMkuD,IAE5Bv4F,KAAKo4F,WAAa10F,OAAOyW,sBAAsBna,KAAKm4F,UAQxDE,iBAAkB,WAEdr4F,KAAKmyC,KAAK34B,OAAOe,KAAKiD,OAEtBxd,KAAKo4F,WAAa10F,OAAOgX,WAAW1a,KAAKm4F,QAASn4F,KAAKmyC,KAAK+B,KAAKz5B,aAQrEzL,KAAM,WAEEhP,KAAKk4F,cAELv9E,aAAa3a,KAAKo4F,YAIlB10F,OAAO0W,qBAAqBpa,KAAKo4F,YAGrCp4F,KAAKgzD,WAAY,GASrBwlC,aAAc,WACV,MAAOx4F,MAAKk4F,eAQhBO,MAAO,WACH,MAAQz4F,MAAKk4F,iBAAkB,IAKvC91D,EAAOkzB,sBAAsBzxD,UAAUsB,YAAci9B,EAAOkzB,sBAkB5DlzB,EAAOlgC,MAQHw2F,IAAe,EAAVx2F,KAAKC,GAWVw2F,WAAY,SAAUtzF,EAAGC,EAAGszF,GAExB,MADuB,mBAAZA,KAA2BA,EAAU,MACzC12F,KAAKirB,IAAI9nB,EAAIC,GAAKszF,GAY7BC,cAAe,SAAUxzF,EAAGC,EAAGszF,GAE3B,MADuB,mBAAZA,KAA2BA,EAAU,MACrCtzF,EAAIszF,EAARvzF,GAYXyzF,iBAAkB,SAAUzzF,EAAGC,EAAGszF,GAE9B,MADuB,mBAAZA,KAA2BA,EAAU,MACzCvzF,EAAIC,EAAIszF,GAUnBG,UAAW,SAAUC,EAAKJ,GAEtB,MADuB,mBAAZA,KAA2BA,EAAU,MACzC12F,KAAKqU,KAAKyiF,EAAMJ,IAU3BK,WAAY,SAAUD,EAAKJ,GAEvB,MADuB,mBAAZA,KAA2BA,EAAU,MACzC12F,KAAKmoC,MAAM2uD,EAAMJ,IAU5BM,QAAS,WAIL,IAAK,GAFDC,GAAM,EAEDh1F,EAAI,EAAGA,EAAIH,UAAUK,OAAQF,IAClCg1F,IAASn1F,UAAUG,EAGvB,OAAOg1F,GAAMn1F,UAAUK,QAU3B+0F,SAAU,SAAUt7E,GAChB,MAAO5b,MAAKm3F,MAAMv7E,IAQtBw7E,MAAO,SAAUx7E,GACb,MAAOA,GAAI,GAcfy7E,OAAQ,SAAUzlD,EAAO0lD,EAAKpqF,GAI1B,MAFqB,mBAAVA,KAAyBA,EAAQ,GAEhC,IAARoqF,EACO1lD,GAGXA,GAAS1kC,EACT0kC,EAAQ0lD,EAAMt3F,KAAKwlC,MAAMoM,EAAQ0lD,GAE1BpqF,EAAQ0kC,IAenB2lD,YAAa,SAAU3lD,EAAO0lD,EAAKpqF,GAI/B,MAFqB,mBAAVA,KAAyBA,EAAQ,GAEhC,IAARoqF,EACO1lD,GAGXA,GAAS1kC,EACT0kC,EAAQ0lD,EAAMt3F,KAAKmoC,MAAMyJ,EAAQ0lD,GAE1BpqF,EAAQ0kC,IAenB4lD,WAAY,SAAU5lD,EAAO0lD,EAAKpqF,GAI9B,MAFqB,mBAAVA,KAAyBA,EAAQ,GAEhC,IAARoqF,EACO1lD,GAGXA,GAAS1kC,EACT0kC,EAAQ0lD,EAAMt3F,KAAKqU,KAAKu9B,EAAQ0lD,GAEzBpqF,EAAQ0kC,IAcnB6lD,cAAe,SAAU7lD,EAAO8lD,EAAK/1C,GAQjC,MANoB,mBAATA,KAAwBA,GAAO,GAEtCA,GACA+1C,EAAI/1C,OAGDzhB,EAAO+C,WAAW00D,YAAY/lD,EAAO8lD,IAuChDE,QAAS,SAAUvwF,EAAOwwF,EAAOC,GAER,mBAAVD,KAAyBA,EAAQ,GACxB,mBAATC,KAAwBA,EAAO,GAE1C,IAAI91F,GAAIhC,KAAK+3F,IAAID,GAAOD,EAExB,OAAO73F,MAAKwlC,MAAMn+B,EAAQrF,GAAKA,GAWnCg2F,QAAS,SAAU3wF,EAAOwwF,EAAOC,GAER,mBAAVD,KAAyBA,EAAQ,GACxB,mBAATC,KAAwBA,EAAO,GAE1C,IAAI91F,GAAIhC,KAAK+3F,IAAID,GAAOD,EAExB,OAAO73F,MAAKmoC,MAAM9gC,EAAQrF,GAAKA,GAWnCi2F,OAAQ,SAAU5wF,EAAOwwF,EAAOC,GAEP,mBAAVD,KAAyBA,EAAQ,GACxB,mBAATC,KAAwBA,EAAO,GAE1C,IAAI91F,GAAIhC,KAAK+3F,IAAID,GAAOD,EAExB,OAAO73F,MAAKqU,KAAKhN,EAAQrF,GAAKA,GAalCk2F,iBAAkB,SAAU/0F,EAAGC,EAAG+0F,GAC9B,OAAQ/0F,EAAID,GAAKg1F,EAASh1F,GAY9Bi1F,aAAc,SAAUjzF,EAAIC,EAAIgJ,EAAIC,GAChC,MAAOrO,MAAKsnC,MAAMj5B,EAAKjJ,EAAIgJ,EAAKjJ,IAepCkzF,cAAe,SAAUlzF,EAAIC,EAAIgJ,EAAIC,GACjC,MAAOrO,MAAKsnC,MAAMl5B,EAAKjJ,EAAIkJ,EAAKjJ,IAUpCkzF,mBAAoB,SAAU5O,EAAQC,GAClC,MAAO3pF,MAAKsnC,MAAMqiD,EAAOrnF,EAAIonF,EAAOpnF,EAAGqnF,EAAOtnF,EAAIqnF,EAAOrnF,IAU7Dk2F,oBAAqB,SAAU7O,EAAQC,GACnC,MAAO3pF,MAAKsnC,MAAMqiD,EAAOtnF,EAAIqnF,EAAOrnF,EAAGsnF,EAAOrnF,EAAIonF,EAAOpnF,IAS7Dk2F,aAAc,SAAUC,GACpB,MAAO36F,MAAK46F,eAAeD,EAAWz4F,KAAKC,IAAI,IASnDy4F,eAAgB,SAAUD,GAGtB,MADAA,IAAuB,EAAIz4F,KAAKC,GACzBw4F,GAAY,EAAIA,EAAWA,EAAW,EAAIz4F,KAAKC,IAW1D04F,kBAAmB,SAAUC,GACzB,MAAO14D,GAAOlgC,KAAKmnC,MAAMyxD,EAAK,IAAK,KAUvCC,mBAAoB,SAAUC,GAC1B,MAAO54D,GAAOlgC,KAAKkjD,KAAK41C,EAAK,KAAM,MAcvCp2D,WAAY,SAAUC,GAClB,MAAOzC,GAAOgC,MAAMQ,WAAWC,IAYnCo2D,YAAa,SAAU7rF,EAAOtB,GAC1B,MAAOs0B,GAAO+C,WAAW81D,YAAY7rF,EAAOtB,IAmBhDotF,gBAAiB,SAAS9rF,EAAOtB,EAAK6rB,GAClC,MAAOyI,GAAO+C,WAAW+1D,gBAAgB9rF,EAAOtB,EAAK6rB,IAYzDwhE,OAAQ,SAAU5xF,EAAOg0B,EAAQroB,GAC7B,MAAOhT,MAAK23B,IAAItwB,EAAQg0B,EAAQroB,IAYpCkmF,OAAQ,SAAU7xF,EAAOg0B,EAAQ1D,GAC7B,MAAO33B,MAAKgT,IAAI3L,EAAQg0B,EAAQ1D,IAcpCurB,KAAM,SAAU77C,EAAOswB,EAAK3kB,GAExB,GAAInH,GAAQmH,EAAM2kB,CAElB,IAAa,GAAT9rB,EAEA,MAAO,EAGX,IAAIkJ,IAAU1N,EAAQswB,GAAO9rB,CAO7B,OALa,GAATkJ,IAEAA,GAAUlJ,GAGPkJ,EAAS4iB,GAepBwhE,UAAW,SAAU9xF,EAAOg0B,EAAQroB,GAEhC,GAAI6V,EAMJ,OALAxhB,GAAQrH,KAAKirB,IAAI5jB,GACjBg0B,EAASr7B,KAAKirB,IAAIoQ,GAClBroB,EAAMhT,KAAKirB,IAAIjY,GACf6V,GAAQxhB,EAAQg0B,GAAUroB,GAgB9BuqE,WAAY,SAASl2E,EAAOswB,EAAK3kB,GAC7B,MAAOktB,GAAOlgC,KAAKmnC,MAAM9/B,EAAOswB,EAAK3kB,IAUzComF,WAAY,WACR,MAAOl5D,GAAOgC,MAAMW,aAAa,GAAI,IAUzCw2D,MAAO,SAAUz9E,GAEb,MAAY,GAAJA,GAUZ09E,OAAQ,SAAU19E,GAEd,QAAa,EAAJA,IAYb+b,IAAK,WAED,GAAyB,IAArB71B,UAAUK,QAAwC,gBAAjBL,WAAU,GAE3C,GAAI4S,GAAO5S,UAAU,OAIrB,IAAI4S,GAAO5S,SAGf,KAAK,GAAIG,GAAI,EAAG01B,EAAM,EAAGyB,EAAM1kB,EAAKvS,OAAYi3B,EAAJn3B,EAASA,IAE7CyS,EAAKzS,GAAKyS,EAAKijB,KAEfA,EAAM11B,EAId,OAAOyS,GAAKijB,IAahB3kB,IAAK,WAED,GAAyB,IAArBlR,UAAUK,QAAwC,gBAAjBL,WAAU,GAE3C,GAAI4S,GAAO5S,UAAU,OAIrB,IAAI4S,GAAO5S,SAGf,KAAK,GAAIG,GAAI,EAAG+Q,EAAM,EAAGomB,EAAM1kB,EAAKvS,OAAYi3B,EAAJn3B,EAASA,IAE7CyS,EAAKzS,GAAKyS,EAAK1B,KAEfA,EAAM/Q,EAId,OAAOyS,GAAK1B,IAWhBumF,YAAa,SAAU74C,GAEnB,GAAyB,IAArB5+C,UAAUK,QAAwC,gBAAjBL,WAAU,GAE3C,GAAI4S,GAAO5S,UAAU,OAIrB,IAAI4S,GAAO5S,UAAUF,MAAM,EAG/B,KAAK,GAAIK,GAAI,EAAG01B,EAAM,EAAGyB,EAAM1kB,EAAKvS,OAAYi3B,EAAJn3B,EAASA,IAE7CyS,EAAKzS,GAAGy+C,GAAYhsC,EAAKijB,GAAK+oB,KAE9B/oB,EAAM11B,EAId,OAAOyS,GAAKijB,GAAK+oB,IAWrB84C,YAAa,SAAU94C,GAEnB,GAAyB,IAArB5+C,UAAUK,QAAwC,gBAAjBL,WAAU,GAE3C,GAAI4S,GAAO5S,UAAU,OAIrB,IAAI4S,GAAO5S,UAAUF,MAAM,EAG/B,KAAK,GAAIK,GAAI,EAAG+Q,EAAM,EAAGomB,EAAM1kB,EAAKvS,OAAYi3B,EAAJn3B,EAASA,IAE7CyS,EAAKzS,GAAGy+C,GAAYhsC,EAAK1B,GAAK0tC,KAE9B1tC,EAAM/Q,EAId,OAAOyS,GAAK1B,GAAK0tC,IAYrB8iC,UAAW,SAAUp/E,EAAOq1F,GAExB,MAAOA,GAAU37F,KAAKolD,KAAK9+C,GAAQpE,KAAKC,GAAID,KAAKC,IAAMnC,KAAKolD,KAAK9+C,EAAO,KAAM,MAclFs1F,WAAY,SAAUt1F,EAAOuzB,EAAK3kB,GAE9B,GAAI+B,GAAS3Q,CAWb,OATIA,GAAQ4O,EAER+B,EAAS/B,EAEI2kB,EAARvzB,IAEL2Q,EAAS4iB,GAGN5iB,GAWX4kF,oBAAqB,SAAU/7E,EAAGkvD,GAE9B,GAAIhlC,GAAIlqB,EAAEzb,OAAS,EACfshC,EAAIqE,EAAIglC,EACR7qE,EAAIjC,KAAKmoC,MAAM1E,EAEnB,OAAQ,GAAJqpC,EAEOhvE,KAAK87F,OAAOh8E,EAAE,GAAIA,EAAE,GAAI6lB,GAG/BqpC,EAAI,EAEGhvE,KAAK87F,OAAOh8E,EAAEkqB,GAAIlqB,EAAEkqB,EAAI,GAAIA,EAAIrE,GAGpC3lC,KAAK87F,OAAOh8E,EAAE3b,GAAI2b,EAAE3b,EAAI,EAAI6lC,EAAIA,EAAI7lC,EAAI,GAAIwhC,EAAIxhC,IAW3D43F,oBAAqB,SAAUj8E,EAAGkvD,GAK9B,IAAK,GAHD1pE,GAAI,EACJwY,EAAIgC,EAAEzb,OAAS,EAEVF,EAAI,EAAQ2Z,GAAL3Z,EAAQA,IAEpBmB,GAAKpD,KAAK+3F,IAAI,EAAIjrB,EAAGlxD,EAAI3Z,GAAKjC,KAAK+3F,IAAIjrB,EAAG7qE,GAAK2b,EAAE3b,GAAKnE,KAAKg8F,UAAUl+E,EAAG3Z,EAG5E,OAAOmB,IAWX22F,wBAAyB,SAAUn8E,EAAGkvD,GAElC,GAAIhlC,GAAIlqB,EAAEzb,OAAS,EACfshC,EAAIqE,EAAIglC,EACR7qE,EAAIjC,KAAKmoC,MAAM1E,EAEnB,OAAI7lB,GAAE,KAAOA,EAAEkqB,IAEH,EAAJglC,IAEA7qE,EAAIjC,KAAKmoC,MAAM1E,EAAIqE,GAAK,EAAIglC,KAGzBhvE,KAAKk8F,WAAWp8E,GAAG3b,EAAI,EAAI6lC,GAAKA,GAAIlqB,EAAE3b,GAAI2b,GAAG3b,EAAI,GAAK6lC,GAAIlqB,GAAG3b,EAAI,GAAK6lC,GAAIrE,EAAIxhC,IAK7E,EAAJ6qE,EAEOlvD,EAAE,IAAM9f,KAAKk8F,WAAWp8E,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAK6lB,GAAK7lB,EAAE,IAG/DkvD,EAAI,EAEGlvD,EAAEkqB,IAAMhqC,KAAKk8F,WAAWp8E,EAAEkqB,GAAIlqB,EAAEkqB,GAAIlqB,EAAEkqB,EAAI,GAAIlqB,EAAEkqB,EAAI,GAAIrE,EAAIqE,GAAKlqB,EAAEkqB,IAGvEhqC,KAAKk8F,WAAWp8E,EAAE3b,EAAIA,EAAI,EAAI,GAAI2b,EAAE3b,GAAI2b,EAAM3b,EAAI,EAAR6lC,EAAYA,EAAI7lC,EAAI,GAAI2b,EAAM3b,EAAI,EAAR6lC,EAAYA,EAAI7lC,EAAI,GAAIwhC,EAAIxhC,IAc/G23F,OAAQ,SAAUK,EAAIztD,EAAI8oD,GACtB,OAAQ9oD,EAAKytD,GAAM3E,EAAI2E,GAU3BH,UAAW,SAAUl+E,EAAG3Z,GACpB,MAAOnE,MAAKo8F,UAAUt+E,GAAK9d,KAAKo8F,UAAUj4F,GAAKnE,KAAKo8F,UAAUt+E,EAAI3Z,IAQtEi4F,UAAY,SAAU7yF,GAElB,GAAa,IAAVA,EAEC,MAAO,EAKX,KAFA,GAAI8yF,GAAM9yF,IAEDA,GAEL8yF,GAAO9yF,CAGX,OAAO8yF,IAgBXH,WAAY,SAAUC,EAAIztD,EAAIC,EAAI2tD,EAAI9E,GAElC,GAAI/6D,GAAiB,IAAXkS,EAAKwtD,GAAWz/D,EAAiB,IAAX4/D,EAAK5tD,GAAWgB,EAAK8nD,EAAIA,EAAG7nD,EAAK6nD,EAAI9nD,CAErE,QAAQ,EAAIhB,EAAK,EAAIC,EAAKlS,EAAKC,GAAMiT,GAAM,GAAKjB,EAAK,EAAIC,EAAK,EAAIlS,EAAKC,GAAMgT,EAAKjT,EAAK+6D,EAAI9oD,GAY/Fo4C,WAAY,SAAUzhF,EAAGC,GACrB,MAAOpD,MAAKirB,IAAI9nB,EAAIC,IAcxBq/C,UAAW,SAAU43C,EAAS3mE,EAAYvxB,GACtC,MAAO+9B,GAAO+C,WAAWyf,cAAc23C,EAAS3mE,EAAYvxB,IAchEm4F,aAAc,SAAUD,EAAS3mE,EAAYvxB,GACzC,MAAO+9B,GAAO+C,WAAWs3D,iBAAiBF,EAAS3mE,EAAYvxB,IAenEgmC,MAAO,SAAU9gC,GACb,MAAOrH,MAAKm3F,MAAM9vF,IAetBgN,KAAM,SAAUhN,GACZ,MAAO64B,GAAOlgC,KAAKw6F,kBAAkBnzF,IAUzCmzF,kBAAmB,SAAUnzF,GAEzB,MAAQA,GAAQ,EAAKrH,KAAKqU,KAAKhN,GAASrH,KAAKmoC,MAAM9gC,IAgBvDozF,gBAAiB,SAAUt4F,EAAQu4F,EAAcC,EAAcC,GAE/B,mBAAjBF,KAAgCA,EAAe,GAC9B,mBAAjBC,KAAgCA,EAAe,GACjC,mBAAdC,KAA6BA,EAAY,EASpD,KAAK,GAPDt2F,GAAMo2F,EACNr2F,EAAMs2F,EACNE,EAAMD,EAAY56F,KAAKC,GAAKkC,EAE5B24F,KACAC,KAEK13F,EAAI,EAAOlB,EAAJkB,EAAYA,IAExBgB,GAAOC,EAAMu2F,EACbv2F,GAAOD,EAAMw2F,EAEbC,EAASz3F,GAAKgB,EACd02F,EAAS13F,GAAKiB,CAIlB,QAASA,IAAKy2F,EAAU12F,IAAKy2F,EAAU34F,OAAQA,IAYnDklE,MAAO,SAAU3jE,GAEb,GAAI4kC,GAAI5kC,EAAM2jE,OAGd,OAFA3jE,GAAMtB,KAAKkmC,GAEJA,GAWX0yD,aAAc,SAAUt3F,GACpB,MAAOw8B,GAAO+C,WAAWK,QAAQ5/B,IAarC6hC,SAAU,SAAUpgC,EAAIC,EAAIgJ,EAAIC,GAE5B,GAAIe,GAAKjK,EAAKiJ,EACVkB,EAAKlK,EAAKiJ,CAEd,OAAOrO,MAAKgrB,KAAK5b,EAAKA,EAAKE,EAAKA,IAepC2rF,YAAa,SAAU91F,EAAIC,EAAIgJ,EAAIC,EAAI0pF,GAInC,MAFmB,mBAARA,KAAuBA,EAAM,GAEjC/3F,KAAKgrB,KAAKhrB,KAAK+3F,IAAI3pF,EAAKjJ,EAAI4yF,GAAO/3F,KAAK+3F,IAAI1pF,EAAKjJ,EAAI2yF,KAehEmD,gBAAiB,SAAU/1F,EAAIC,EAAIgJ,EAAIC,GACnC,MAAOrO,MAAKwlC,MAAMtF,EAAOlgC,KAAKulC,SAASpgC,EAAIC,EAAIgJ,EAAIC,KAYvD84B,MAAO,SAAU9kC,EAAGc,EAAGC,GACnB,MAAaD,GAAJd,EAAUc,EAAQd,EAAIe,EAAMA,EAAIf,GAY7C84F,YAAa,SAAU94F,EAAGc,GACtB,MAAWA,GAAJd,EAAQc,EAAId,GAavB+4F,OAAQ,SAAUj4F,EAAGC,EAAGkmC,GACpB,MAAQtpC,MAAKirB,IAAI9nB,EAAIC,IAAMkmC,GAc/B+xD,UAAW,SAAUh5F,EAAGkC,EAAI+lB,EAAI1lB,EAAI2lB,GAChC,MAAO3lB,IAAOvC,EAAIkC,IAASgmB,EAAK3lB,IAAS0lB,EAAK/lB,IAYlD+2F,WAAY,SAAUj5F,EAAGs1B,EAAK3kB,GAE1B,MADA3Q,GAAIrC,KAAKgT,IAAI,EAAGhT,KAAK23B,IAAI,GAAIt1B,EAAIs1B,IAAQ3kB,EAAM2kB,KACxCt1B,EAAIA,GAAK,EAAI,EAAIA,IAY5Bk5F,aAAc,SAAUl5F,EAAGs1B,EAAK3kB,GAE5B,MADA3Q,GAAIrC,KAAKgT,IAAI,EAAGhT,KAAK23B,IAAI,GAAIt1B,EAAIs1B,IAAQ3kB,EAAM2kB,KACxCt1B,EAAIA,EAAIA,GAAKA,GAAS,EAAJA,EAAQ,IAAM,KAY3CsZ,KAAM,SAAUtZ,GACZ,MAAa,GAAJA,EAAU,GAASA,EAAI,EAAM,EAAI,GAY9Cm5F,QAAS,SAAUr4F,EAAGC,EAAG00F,GAIrB,MAFoB,mBAATA,KAAwBA,EAAO,GAEtC30F,EAAIC,GAAK00F,EAAO10F,EAET,EAEE00F,EAAJ30F,GAAY20F,EAAO30F,EAEjB,GAICA,EAAI20F,GAAQ10F,GAOhC,IAAIq4F,GAAwBz7F,KAAKC,GAAK,IAClCy7F,EAAwB,IAAM17F,KAAKC,EASvCigC,GAAOlgC,KAAKkmC,SAAW,SAAmBy1D,GACtC,MAAOA,GAAUF,GAUrBv7D,EAAOlgC,KAAKqnC,SAAW,SAAmBoyD,GACtC,MAAOA,GAAUiC,GAoBrBx7D,EAAO6xB,oBAAsB,SAAU6pC,GAEd,mBAAVA,KAAyBA,MAMpC99F,KAAKuF,EAAI,EAMTvF,KAAK+9F,GAAK,EAMV/9F,KAAKg+F,GAAK,EAMVh+F,KAAKi+F,GAAK,EAEVj+F,KAAKk+F,IAAIJ,IAIb17D,EAAO6xB,oBAAoBpwD,WASvBywC,IAAK,WAED,GAAIkjD,GAAI,QAAUx3F,KAAK+9F,GAAc,uBAAT/9F,KAAKuF,CAOjC,OALAvF,MAAKuF,EAAQ,EAAJiyF,EACTx3F,KAAK+9F,GAAK/9F,KAAKg+F,GACfh+F,KAAKg+F,GAAKh+F,KAAKi+F,GACfj+F,KAAKi+F,GAAKzG,EAAIx3F,KAAKuF,EAEZvF,KAAKi+F,IAShBC,IAAK,SAAUJ,GAEU,mBAAVA,KAAyBA,MAEpC99F,KAAK+9F,GAAK/9F,KAAKm+F,KAAK,KACpBn+F,KAAKg+F,GAAKh+F,KAAKm+F,KAAKn+F,KAAK+9F,IACzB/9F,KAAKi+F,GAAKj+F,KAAKm+F,KAAKn+F,KAAKg+F,IACzBh+F,KAAKuF,EAAI,CAIT,KAAK,GAFD8uD,GAEKlwD,EAAI,EAAGkwD,EAAOypC,EAAM35F,MAEzBnE,KAAK+9F,IAAM/9F,KAAKm+F,KAAK9pC,GACrBr0D,KAAK+9F,OAAS/9F,KAAK+9F,GAAK,GACxB/9F,KAAKg+F,IAAMh+F,KAAKm+F,KAAK9pC,GACrBr0D,KAAKg+F,OAASh+F,KAAKg+F,GAAK,GACxBh+F,KAAKi+F,IAAMj+F,KAAKm+F,KAAK9pC,GACrBr0D,KAAKi+F,OAASj+F,KAAKi+F,GAAK,IAahCE,KAAM,SAAUvnF,GAEZ,GAAI6jB,GAAGt2B,EAAG2Z,CAIV,KAHAA,EAAI,WACJlH,EAAOA,EAAKpC,WAEPrQ,EAAI,EAAGA,EAAIyS,EAAKvS,OAAQF,IACzB2Z,GAAKlH,EAAKsB,WAAW/T,GACrBs2B,EAAI,mBAAsB3c,EAC1BA,EAAI2c,IAAM,EACVA,GAAK3c,EACL2c,GAAK3c,EACLA,EAAI2c,IAAM,EACVA,GAAK3c,EACLA,GAAS,WAAJ2c,CAGT,OAAmB,yBAAX3c,IAAM,IAUlBsgF,QAAS,WAEL,MAA8B,YAAvBp+F,KAAKs0C,IAAI7wC,MAAMzD,OAU1Bq+F,KAAM,WAEF,MAAOr+F,MAAKs0C,IAAI7wC,MAAMzD,MAAgD,wBAAhB,QAAvBA,KAAKs0C,IAAI7wC,MAAMzD,MAAmB,IAUrEoxC,KAAM,WAEF,MAAOpxC,MAAKo+F,UAAYp+F,KAAKq+F,QAYjC74C,eAAgB,SAAU3rB,EAAK3kB,GAE3B,MAAOhT,MAAKmoC,MAAMrqC,KAAKs+F,YAAY,EAAGppF,EAAM2kB,EAAM,GAAKA,IAa3D0kE,QAAS,SAAU1kE,EAAK3kB,GAEpB,MAAOlV,MAAKwlD,eAAe3rB,EAAK3kB,IAYpCopF,YAAa,SAAUzkE,EAAK3kB,GAExB,MAAOlV,MAAKq+F,QAAUnpF,EAAM2kB,GAAOA,GAUvC2kE,OAAQ,WAEJ,MAAO,GAAI,EAAIx+F,KAAKq+F,QAUxBz2C,KAAM,WAEF,GAAIviD,GAAI,GACJC,EAAI,EAER,KAAKA,EAAID,EAAI,GAAIA,IAAM,GAAIC,IAAKD,EAAI,EAAQ,EAAJA,EAAM,GAAO,GAAFA,EAAO,EAAErF,KAAKq+F,QAAY,GAAFh5F,EAAO,GAAK,GAAK,GAAGmP,SAAS,IAAM,KAI9G,MAAOlP,IAWXm5F,KAAM,SAAUC,GAEZ,MAAOA,GAAI1+F,KAAKwlD,eAAe,EAAGk5C,EAAIr6F,OAAS,KAWnDs6F,aAAc,SAAUD,GAEpB,MAAOA,MAAOx8F,KAAK+3F,IAAIj6F,KAAKq+F,OAAQ,IAAMK,EAAIr6F,OAAS,MAY3D2vE,UAAW,SAAUn6C,EAAK3kB,GAEtB,MAAOlV,MAAKs+F,YAAYzkE,GAAO,UAAc3kB,GAAO,YAUxD5O,MAAO,WAEH,MAAOtG,MAAKwlD,eAAe,KAAM,OAMzCpjB,EAAO6xB,oBAAoBpwD,UAAUsB,YAAci9B,EAAO6xB,oBAwB1D7xB,EAAOw8D,SAAW,SAASr6F,EAAGC,EAAG2C,EAAOC,EAAQy3F,EAAYC,EAAWvtE,GAMnEvxB,KAAK6+F,WAAa,GAMlB7+F,KAAK8+F,UAAY,EAKjB9+F,KAAKuxB,MAAQ,EAKbvxB,KAAK6K,UAKL7K,KAAKu8F,WAKLv8F,KAAK++F,SAML/+F,KAAKg/F,UAELh/F,KAAKqoB,MAAM9jB,EAAGC,EAAG2C,EAAOC,EAAQy3F,EAAYC,EAAWvtE,IAI3D6Q,EAAOw8D,SAAS/6F,WAcZwkB,MAAO,SAAU9jB,EAAGC,EAAG2C,EAAOC,EAAQy3F,EAAYC,EAAWvtE,GAEzDvxB,KAAK6+F,WAAaA,GAAc,GAChC7+F,KAAK8+F,UAAYA,GAAa,EAC9B9+F,KAAKuxB,MAAQA,GAAS,EAEtBvxB,KAAK6K,QACDtG,EAAGrC,KAAKwlC,MAAMnjC,GACdC,EAAGtC,KAAKwlC,MAAMljC,GACd2C,MAAOA,EACPC,OAAQA,EACR63F,SAAU/8F,KAAKmoC,MAAMljC,EAAQ,GAC7B+3F,UAAWh9F,KAAKmoC,MAAMjjC,EAAS,GAC/B8+B,MAAOhkC,KAAKwlC,MAAMnjC,GAAKrC,KAAKmoC,MAAMljC,EAAQ,GAC1C8gC,OAAQ/lC,KAAKwlC,MAAMljC,GAAKtC,KAAKmoC,MAAMjjC,EAAS,IAGhDpH,KAAKu8F,QAAQl4F,OAAS,EACtBrE,KAAK++F,MAAM16F,OAAS,GAUxB86F,SAAU,SAAUpkB,GAEhBA,EAAMpuC,QAAQ3sC,KAAKo/F,gBAAiBp/F,MAAM,IAU9Co/F,gBAAiB,SAAUtrE,GAEnBA,EAAOwgC,MAAQxgC,EAAO0kB,QAEtBx4C,KAAKq/F,OAAOvrE,EAAOwgC,OAU3B3/C,MAAO,WAGH3U,KAAK++F,MAAM,GAAK,GAAI38D,GAAOw8D,SAAS5+F,KAAK6K,OAAOq7B,MAAOlmC,KAAK6K,OAAOrG,EAAGxE,KAAK6K,OAAOo0F,SAAUj/F,KAAK6K,OAAOq0F,UAAWl/F,KAAK6+F,WAAY7+F,KAAK8+F,UAAY9+F,KAAKuxB,MAAQ,GAGlKvxB,KAAK++F,MAAM,GAAK,GAAI38D,GAAOw8D,SAAS5+F,KAAK6K,OAAOtG,EAAGvE,KAAK6K,OAAOrG,EAAGxE,KAAK6K,OAAOo0F,SAAUj/F,KAAK6K,OAAOq0F,UAAWl/F,KAAK6+F,WAAY7+F,KAAK8+F,UAAY9+F,KAAKuxB,MAAQ,GAG9JvxB,KAAK++F,MAAM,GAAK,GAAI38D,GAAOw8D,SAAS5+F,KAAK6K,OAAOtG,EAAGvE,KAAK6K,OAAOo9B,OAAQjoC,KAAK6K,OAAOo0F,SAAUj/F,KAAK6K,OAAOq0F,UAAWl/F,KAAK6+F,WAAY7+F,KAAK8+F,UAAY9+F,KAAKuxB,MAAQ,GAGnKvxB,KAAK++F,MAAM,GAAK,GAAI38D,GAAOw8D,SAAS5+F,KAAK6K,OAAOq7B,MAAOlmC,KAAK6K,OAAOo9B,OAAQjoC,KAAK6K,OAAOo0F,SAAUj/F,KAAK6K,OAAOq0F,UAAWl/F,KAAK6+F,WAAY7+F,KAAK8+F,UAAY9+F,KAAKuxB,MAAQ,IAU3K8tE,OAAQ,SAAU/qC,GAEd,GACI3nD,GADAxI,EAAI,CAIR,IAAqB,MAAjBnE,KAAK++F,MAAM,KAEXpyF,EAAQ3M,KAAKy4C,SAAS6b,GAER,KAAV3nD,GAGA,WADA3M,MAAK++F,MAAMpyF,GAAO0yF,OAAO/qC,EAOjC,IAFAt0D,KAAKu8F,QAAQj4F,KAAKgwD,GAEdt0D,KAAKu8F,QAAQl4F,OAASrE,KAAK6+F,YAAc7+F,KAAKuxB,MAAQvxB,KAAK8+F,UAS3D,IANqB,MAAjB9+F,KAAK++F,MAAM,IAEX/+F,KAAK2U,QAIFxQ,EAAInE,KAAKu8F,QAAQl4F,QAEpBsI,EAAQ3M,KAAKy4C,SAASz4C,KAAKu8F,QAAQp4F,IAErB,KAAVwI,EAGA3M,KAAK++F,MAAMpyF,GAAO0yF,OAAOr/F,KAAKu8F,QAAQ1vF,OAAO1I,EAAG,GAAG,IAInDA,KAchBs0C,SAAU,SAAUld,GAGhB,GAAI5uB,GAAQ,EA8BZ,OA5BI4uB,GAAKh3B,EAAIvE,KAAK6K,OAAOq7B,OAAS3K,EAAK2K,MAAQlmC,KAAK6K,OAAOq7B,MAEnD3K,EAAK/2B,EAAIxE,KAAK6K,OAAOo9B,QAAU1M,EAAK0M,OAASjoC,KAAK6K,OAAOo9B,OAGzDt7B,EAAQ,EAEH4uB,EAAK/2B,EAAIxE,KAAK6K,OAAOo9B,SAG1Bt7B,EAAQ,GAGP4uB,EAAKh3B,EAAIvE,KAAK6K,OAAOq7B,QAGtB3K,EAAK/2B,EAAIxE,KAAK6K,OAAOo9B,QAAU1M,EAAK0M,OAASjoC,KAAK6K,OAAOo9B,OAGzDt7B,EAAQ,EAEH4uB,EAAK/2B,EAAIxE,KAAK6K,OAAOo9B,SAG1Bt7B,EAAQ,IAITA,GAWX2yF,SAAU,SAAUztF,GAEhB,GAAIA,YAAkBuwB,GAAOl7B,UAEzB,GAAIq4F,GAAgBv/F,KAAKu8F,QAErB5vF,EAAQ3M,KAAKy4C,SAAS5mC,OAG9B,CACI,IAAKA,EAAOyiD,KAER,MAAOt0D,MAAKg/F,MAGhB,IAAIO,GAAgBv/F,KAAKu8F,QAErB5vF,EAAQ3M,KAAKy4C,SAAS5mC,EAAOyiD,MAoBrC,MAjBIt0D,MAAK++F,MAAM,KAGG,KAAVpyF,EAEA4yF,EAAgBA,EAAcpkF,OAAOnb,KAAK++F,MAAMpyF,GAAO2yF,SAASztF,KAKhE0tF,EAAgBA,EAAcpkF,OAAOnb,KAAK++F,MAAM,GAAGO,SAASztF,IAC5D0tF,EAAgBA,EAAcpkF,OAAOnb,KAAK++F,MAAM,GAAGO,SAASztF,IAC5D0tF,EAAgBA,EAAcpkF,OAAOnb,KAAK++F,MAAM,GAAGO,SAASztF,IAC5D0tF,EAAgBA,EAAcpkF,OAAOnb,KAAK++F,MAAM,GAAGO,SAASztF,MAI7D0tF,GAQXzvE,MAAO,WAEH9vB,KAAKu8F,QAAQl4F,OAAS,CAItB,KAFA,GAAIF,GAAInE,KAAK++F,MAAM16F,OAEZF,KAEHnE,KAAK++F,MAAM56F,GAAG2rB,QACd9vB,KAAK++F,MAAMlyF,OAAO1I,EAAG,EAGzBnE,MAAK++F,MAAM16F,OAAS,IAK5B+9B,EAAOw8D,SAAS/6F,UAAUsB,YAAci9B,EAAOw8D,SAmD/Cx8D,EAAO+yB,IAAM,SAAUhjB,GAEnBnyC,KAAKmyC,KAAOA,GAIhB/P,EAAO+yB,IAAItxD,WAQP27F,YAAa,WAET,MAAI97F,QAAO+7F,UAAY/7F,OAAO+7F,SAASC,SAC5Bh8F,OAAO+7F,SAASC,SAGpB,MAcXC,gBAAiB,SAAUC,GACvB,MAAoD,KAA7Cl8F,OAAO+7F,SAASC,SAASr8F,QAAQu8F,IAgB5CC,kBAAmB,SAAUl9E,EAAKpZ,EAAOu2F,EAAUC,GAEvB,mBAAbD,KAA4BA,GAAW,IAC/B,mBAARC,IAA+B,KAARA,KAAcA,EAAMr8F,OAAO+7F,SAASO,KAEtE,IAAIr4D,GAAS,GACTs4D,EAAK,GAAIlK,QAAO,UAAYpzE,EAAM,kBAAmB,KAEzD,IAAIs9E,EAAG9nF,KAAK4nF,GAIJp4D,EAFiB,mBAAVp+B,IAAmC,OAAVA,EAEvBw2F,EAAI1mD,QAAQ4mD,EAAI,KAAOt9E,EAAM,IAAMpZ,EAAQ,QAI3Cw2F,EAAI1mD,QAAQ4mD,EAAI,QAAQ5mD,QAAQ,UAAW,QAKxD,IAAqB,mBAAV9vC,IAAmC,OAAVA,EACpC,CACI,GAAI22F,GAAiC,KAArBH,EAAI18F,QAAQ,KAAc,IAAM,IAC5C86F,EAAO4B,EAAIprF,MAAM,IACrBorF;EAAM5B,EAAK,GAAK+B,EAAYv9E,EAAM,IAAMpZ,EAEpC40F,EAAK,KACL4B,GAAO,IAAM5B,EAAK,IAGtBx2D,EAASo4D,MAKTp4D,GAASo4D,CAIjB,OAAID,QAEAp8F,OAAO+7F,SAASO,KAAOr4D,GAIhBA,GAafw4D,eAAgB,SAAUC,GAEG,mBAAdA,KAA6BA,EAAY,GAEpD,IAAIz4D,MACA04D,EAAYZ,SAASa,OAAOC,UAAU,GAAG5rF,MAAM,IAEnD,KAAK,GAAIxQ,KAAKk8F,GACd,CACI,GAAI19E,GAAM09E,EAAUl8F,GAAGwQ,MAAM,IAE7B,IAAIgO,EAAIte,OAAS,EACjB,CACI,GAAI+7F,GAAaA,GAAapgG,KAAKwgG,UAAU79E,EAAI,IAE7C,MAAO3iB,MAAKwgG,UAAU79E,EAAI,GAI1BglB,GAAO3nC,KAAKwgG,UAAU79E,EAAI,KAAO3iB,KAAKwgG,UAAU79E,EAAI,KAKhE,MAAOglB,IAYX64D,UAAW,SAAUj3F,GACjB,MAAOk3F,oBAAmBl3F,EAAM8vC,QAAQ,MAAO,QAKvDjX,EAAO+yB,IAAItxD,UAAUsB,YAAci9B,EAAO+yB,IAqB1C/yB,EAAO2yB,aAAe,SAAU5iB,GAK5BnyC,KAAKmyC,KAAOA,EAMZnyC,KAAK0gG,WAML1gG,KAAK2gG,QAEL3gG,KAAKmyC,KAAKgE,QAAQnN,IAAIhpC,KAAK4gG,UAAW5gG,MACtCA,KAAKmyC,KAAKkE,SAASrN,IAAIhpC,KAAK6gG,WAAY7gG,OAI5CoiC,EAAO2yB,aAAalxD,WAOhBi9F,OAAQ,WAEJ,MAAO9gG,MAAK0gG,SAQhBjpD,UAAW,WAEP,IAAK,GAAItzC,GAAI,EAAGA,EAAInE,KAAK0gG,QAAQr8F,OAAQF,IAErCnE,KAAK0gG,QAAQv8F,GAAG48F,eAAgB,CAGpC/gG,MAAK2gG,SAWT33D,IAAK,SAAUgyC,GAEXA,EAAMgmB,SAAWhhG,KACjBA,KAAK2gG,KAAKr8F,KAAK02E,IAWnB3uE,OAAQ,SAAU8lD,GAEd,MAAO,IAAI/vB,GAAO86C,MAAM/qB,EAAQnyD,KAAKmyC,KAAMnyC,OAU/C62C,OAAQ,SAAUmkC,GAEd,GAAI72E,GAAInE,KAAK0gG,QAAQr9F,QAAQ23E,EAEnB,MAAN72E,EAEAnE,KAAK0gG,QAAQv8F,GAAG48F,eAAgB,GAIhC58F,EAAInE,KAAK2gG,KAAKt9F,QAAQ23E,GAEZ,KAAN72E,IAEAnE,KAAK2gG,KAAKx8F,GAAG48F,eAAgB,KAYzCvnF,OAAQ,WAEJ,GAAIynF,GAAYjhG,KAAK2gG,KAAKt8F,OACtB68F,EAAYlhG,KAAK0gG,QAAQr8F,MAE7B,IAAkB,IAAd68F,GAAiC,IAAdD,EAEnB,OAAO,CAKX,KAFA,GAAI98F,GAAI,EAEG+8F,EAAJ/8F,GAECnE,KAAK0gG,QAAQv8F,GAAGqV,OAAOxZ,KAAKmyC,KAAK+B,KAAK12B,KAEtCrZ,KAIAnE,KAAK0gG,QAAQ7zF,OAAO1I,EAAG,GAEvB+8F,IAWR,OANID,GAAY,IAEZjhG,KAAK0gG,QAAU1gG,KAAK0gG,QAAQvlF,OAAOnb,KAAK2gG,MACxC3gG,KAAK2gG,KAAKt8F,OAAS,IAGhB,GAWX88F,WAAY,SAAShvC,GAEjB,MAAOnyD,MAAK0gG,QAAQU,KAAK,SAASpmB,GAC9B,MAAOA,GAAMqmB,UAAYlvC,KAWjCyuC,UAAW,WAEP,IAAK,GAAIz8F,GAAInE,KAAK0gG,QAAQr8F,OAAS,EAAGF,GAAK,EAAGA,IAE1CnE,KAAK0gG,QAAQv8F,GAAGm9F,UAWxBT,WAAY,WAER,IAAK,GAAI18F,GAAInE,KAAK0gG,QAAQr8F,OAAS,EAAGF,GAAK,EAAGA,IAE1CnE,KAAK0gG,QAAQv8F,GAAGo9F,WAUxBC,SAAU,WAEN,IAAK,GAAIr9F,GAAInE,KAAK0gG,QAAQr8F,OAAS,EAAGF,GAAK,EAAGA,IAE1CnE,KAAK0gG,QAAQv8F,GAAGiyC,SAUxBqrD,UAAW,WAEP,IAAK,GAAIt9F,GAAInE,KAAK0gG,QAAQr8F,OAAS,EAAGF,GAAK,EAAGA,IAE1CnE,KAAK0gG,QAAQv8F,GAAGmyC,QAAO,KAOnClU,EAAO2yB,aAAalxD,UAAUsB,YAAci9B,EAAO2yB,aAkBnD3yB,EAAO86C,MAAQ,SAAU/qB,EAAQhgB,EAAMuT,GAOnC1lD,KAAKqhG,QAAUlvC,EAKfnyD,KAAKmyC,KAAOA,EAMZnyC,KAAKghG,SAAWt7C,EAMhB1lD,KAAK0hG,gBAML1hG,KAAK2hG,cAML3hG,KAAK4hG,sBAOL5hG,KAAK6hG,UAAY,IAOjB7hG,KAAK8hG,QAAU,EAOf9hG,KAAK+hG,OAAQ,EAOb/hG,KAAKgiG,WAAY,EAOjBhiG,KAAKiiG,WAAa,EAOlBjiG,KAAKkiG,WAAa,KAMlBliG,KAAKmiG,gBAAkB//D,EAAOggE,OAAOC,QAMrCriG,KAAKsiG,uBAAyBlgE,EAAOlgC,KAAK25F,oBAM1C77F,KAAKuiG,kBAOLviG,KAAKwiG,uBAAwB,EAO7BxiG,KAAKyiG,kBAAoB,KAOzBziG,KAAK0iG,yBAA2B,KAOhC1iG,KAAKwzD,SAAU,EAOfxzD,KAAK2iG,YAAc,EAMnB3iG,KAAKyzD,aAAc,EAMnBzzD,KAAK+gG,eAAgB,EAKrB/gG,KAAK4iG,QAAU,GAAIxgE,GAAOuW,OAK1B34C,KAAK6iG,OAAS,GAAIzgE,GAAOuW,OAKzB34C,KAAK8iG,WAAa,GAAI1gE,GAAOuW,OAM7B34C,KAAKgzD,WAAY,GAIrB5wB,EAAO86C,MAAMr5E,WAgBT+iC,GAAI,SAAUzwB,EAAY8lD,EAAU8mC,EAAMrsD,EAAW0iC,EAAO/0D,EAAQ2+E,GAEhE/mC,EAAWA,GAAY,IACvB8mC,EAAOA,GAAQ,KACfrsD,EAAYA,IAAa,EACzB0iC,EAAQA,GAAS,EACjB/0D,EAASA,GAAU,EACnB2+E,EAAOA,IAAQ,EAEXA,GAAmB,IAAX3+E,IAERA,EAAS,EAGb,IAAItH,EAmCJ,OAjCI/c,MAAKijG,SAAWjjG,KAAKijG,UAAYjjG,MAEjC+c,EAAO/c,KAAKghG,SAAS30F,OAAOrM,KAAKqhG,SACjCrhG,KAAKkjG,WAAWC,MAAMpmF,GACtB/c,KAAKkjG,WAAanmF,IAIlBA,EAAO/c,KACPA,KAAKijG,QAAUjjG,KACfA,KAAKkjG,WAAaljG,MAGtB+c,EAAK+kF,QAAUz9E,EACftH,EAAK8kF,UAAY5lC,EACjBl/C,EAAK4kF,WAAaxrF,EAEL,OAAT4sF,IAEAhmF,EAAKolF,gBAAkBY,GAKvBhmF,EAAKklF,WAFL7oB,EAAQ,EAEUA,EAIA,EAGtBr8D,EAAKglF,MAAQiB,EAETtsD,EAEO12C,KAAKoP,QAILpP,MAmBfqL,KAAM,SAAS8K,EAAY8lD,EAAU8mC,EAAMrsD,EAAW0iC,EAAO/0D,EAAQ2+E,GAEjE,GAAIxiD,KAEJ,KAAK,GAAIlc,KAAQnuB,GAEbqqC,EAAOlc,GAAQtkC,KAAKqhG,QAAQ/8D,GAC5BtkC,KAAKqhG,QAAQ/8D,GAAQnuB,EAAWmuB,EAGpC,OAAOtkC,MAAK4mC,GAAG4Z,EAAQyb,EAAU8mC,EAAMrsD,EAAW0iC,EAAO/0D,EAAQ2+E,IAUrE5zF,MAAO,WAEH,GAAkB,OAAdpP,KAAKmyC,MAAkC,OAAjBnyC,KAAKqhG,QAA/B,CAKArhG,KAAKghG,SAASh4D,IAAIhpC,MAElBA,KAAKgzD,WAAY,EAEjBhzD,KAAKwiG,uBAAwB,EAI7BxiG,KAAKkiG,WAAaliG,KAAKmyC,KAAK+B,KAAK12B,IAAMxd,KAAKiiG,WAAajiG,KAAKmyC,KAAK+B,KAAKwhB,UAExE,KAAK,GAAI9S,KAAY5iD,MAAK2hG,WAC1B,CAEI,GAAI7/F,MAAM6kC,QAAQ3mC,KAAK2hG,WAAW/+C,IAClC,CACI,GAAyC,IAArC5iD,KAAK2hG,WAAW/+C,GAAUv+C,OAE1B,QAIJrE,MAAK2hG,WAAW/+C,IAAa5iD,KAAKqhG,QAAQz+C,IAAWznC,OAAOnb,KAAK2hG,WAAW/+C,IAGhF5iD,KAAK0hG,aAAa9+C,GAAY5iD,KAAKqhG,QAAQz+C,GAEtC9gD,MAAM6kC,QAAQ3mC,KAAK0hG,aAAa9+C,MAEjC5iD,KAAK0hG,aAAa9+C,IAAa,GAGnC5iD,KAAK4hG,mBAAmBh/C,GAAY5iD,KAAK0hG,aAAa9+C,IAAa,EAGvE,MAAO5iD,QAcXojG,aAAc,SAAU9d,EAAW1uE,GAE/B,GAAkB,OAAd5W,KAAKmyC,MAAkC,OAAjBnyC,KAAKqhG,QAE3B,MAAO,KAGXrhG,MAAKkiG,WAAa,CAElB,KAAK,GAAIt/C,KAAY5iD,MAAK2hG,WAC1B,CAEI,GAAI7/F,MAAM6kC,QAAQ3mC,KAAK2hG,WAAW/+C,IAClC,CACI,GAAyC,IAArC5iD,KAAK2hG,WAAW/+C,GAAUv+C,OAE1B,QAIJrE,MAAK2hG,WAAW/+C,IAAa5iD,KAAKqhG,QAAQz+C,IAAWznC,OAAOnb,KAAK2hG,WAAW/+C,IAGhF5iD,KAAK0hG,aAAa9+C,GAAY5iD,KAAKqhG,QAAQz+C,GAEtC9gD,MAAM6kC,QAAQ3mC,KAAK0hG,aAAa9+C,MAEjC5iD,KAAK0hG,aAAa9+C,IAAa,GAGnC5iD,KAAK4hG,mBAAmBh/C,GAAY5iD,KAAK0hG,aAAa9+C,IAAa,EAUvE,IANA,GAAI1O,GAAO,EACP1W,EAAQt7B,KAAKmoC,MAAMi7C,GAAatlF,KAAK6hG,UAAY,MACjDwB,EAAOrjG,KAAK6hG,UAAYrkE,EAExBmK,KAEGnK,KACP,CACI,GAAIolB,GAEA86C,GAAWxpD,EAAOl0C,KAAKkiG,YAAcliG,KAAK6hG,SAC9CnE,GAAUA,EAAU,EAAI,EAAIA,CAE5B,IAAIn0F,GAAQvJ,KAAKmiG,gBAAgBzE,GAC7B4F,IAEJ,KAAK1gD,IAAY5iD,MAAK2hG,WACtB,CACI,GAAIvyF,GAAQpP,KAAK0hG,aAAa9+C,IAAa,EACvC90C,EAAM9N,KAAK2hG,WAAW/+C,EAEtB90C,aAAehM,OAEfwhG,EAAK1gD,GAAY5iD,KAAKsiG,uBAAuBx0F,EAAKvE,GAI/B,gBAARuE,GAGPA,EAAMsB,EAAQy4E,WAAW/5E,EAAK,IAEV,gBAARA,KAGZw1F,EAAK1gD,GAAYxzC,GAAStB,EAAMsB,GAAS7F,GAKrDo+B,EAAOrjC,KAAKg/F,GAEZpvD,GAAQmvD,EAGZ,GAAIC,KAEJ,KAAK1gD,IAAY5iD,MAAK2hG,WAElB2B,EAAK1gD,GAAY5iD,KAAK2hG,WAAW/+C,EAKrC,IAFAjb,EAAOrjC,KAAKg/F,GAERtjG,KAAK+hG,MACT,CACI,GAAIwB,GAAW57D,EAAO7jC,OACtBy/F,GAASryE,UACTyW,EAASA,EAAOxsB,OAAOooF,GAG3B,MAAoB,mBAAT3sF,GAEPA,EAAOA,EAAKuE,OAAOwsB,GAMZA,GAYf34B,KAAM,WASF,MAPAhP,MAAKgzD,WAAY,EAEjBhzD,KAAKyiG,kBAAoB,KACzBziG,KAAKwiG,uBAAwB,EAE7BxiG,KAAKghG,SAASnqD,OAAO72C,MAEdA,MAWXo5E,MAAO,SAAU77C,GAIb,MAFAv9B,MAAKiiG,WAAa1kE,EAEXv9B,MAWXqkB,OAAQ,SAAUm/E,GAId,MAFAxjG,MAAK8hG,QAAU0B,EAERxjG,MAYXgjG,KAAM,SAASA,GASX,MAPAhjG,MAAK+hG,MAAQiB,EAETA,GAAyB,IAAjBhjG,KAAK8hG,UAEb9hG,KAAK8hG,QAAU,GAGZ9hG,MAWXyjG,OAAQ,SAAUA,GAGd,MADAzjG,MAAKmiG,gBAAkBsB,EAChBzjG,MAYX0jG,cAAe,SAAUA,GAGrB,MADA1jG,MAAKsiG,uBAAyBoB,EACvB1jG,MAWXmjG,MAAO,WAGH,MADAnjG,MAAKuiG,eAAiBv+F,UACfhE,MAgBXm7E,KAAM,WAGF,MADAn7E,MAAKkjG,WAAWC,MAAMnjG,MACfA,MAYXw1C,iBAAkB,SAAUn7B,EAAUy8B,GAKlC,MAHA92C,MAAKyiG,kBAAoBpoF,EACzBra,KAAK0iG,yBAA2B5rD,EAEzB92C,MASXo2C,MAAO,WAEHp2C,KAAKyzD,aAAc,EACnBzzD,KAAKwzD,SAAU,EACfxzD,KAAK2iG,YAAc3iG,KAAKmyC,KAAK+B,KAAK12B,KAStC8jF,OAAQ,WAECthG,KAAKyzD,cAENzzD,KAAKwzD,SAAU,EACfxzD,KAAK2iG,YAAc3iG,KAAKmyC,KAAK+B,KAAK12B,MAU1C84B,OAAQ,WAEAt2C,KAAKwzD,UAELxzD,KAAKwzD,SAAU,EACfxzD,KAAKyzD,aAAc,EAEnBzzD,KAAKkiG,YAAeliG,KAAKmyC,KAAK+B,KAAK12B,IAAMxd,KAAK2iG,cAUtDpB,QAAS,WAEDvhG,KAAKyzD,cAMLzzD,KAAKkiG,YAAcliG,KAAKmyC,KAAK+B,KAAKyvD,cAClC3jG,KAAKwzD,SAAU,IAYvBh6C,OAAQ,SAAU06B,GAEd,GAAIl0C,KAAK+gG,cAEL,OAAO,CAGX,IAAI/gG,KAAKwzD,SAAWtf,EAAOl0C,KAAKkiG,WAE5B,OAAO,CAGX,IAAIt/C,EAGA5iD,MAAKwiG,yBAA0B,IAE/BxiG,KAAK4iG,QAAQ9pD,SAAS94C,KAAKqhG,SAC3BrhG,KAAKwiG,uBAAwB,EAGjC,IAAI9E,IAAWxpD,EAAOl0C,KAAKkiG,aAAeliG,KAAK6hG,UAAY7hG,KAAKmyC,KAAK+B,KAAKwhB,WAC1EgoC,GAAUA,EAAU,EAAI,EAAIA,CAE5B,IAAIn0F,GAAQvJ,KAAKmiG,gBAAgBzE,EAEjC,KAAK96C,IAAY5iD,MAAK2hG,WACtB,CACI,GAAIvyF,GAAQpP,KAAK0hG,aAAa9+C,IAAa,EACvC90C,EAAM9N,KAAK2hG,WAAW/+C,EAEtB90C,aAAehM,OAEf9B,KAAKqhG,QAAQz+C,GAAY5iD,KAAKsiG,uBAAuBx0F,EAAKvE,IAKtC,gBAAV,KAENuE,EAAMsB,EAAQy4E,WAAW/5E,EAAK,KAId,gBAAV,KAEN9N,KAAKqhG,QAAQz+C,GAAYxzC,GAAUtB,EAAMsB,GAAU7F,IAK/D,GAA+B,OAA3BvJ,KAAKyiG,oBAELziG,KAAKyiG,kBAAkB1+F,KAAK/D,KAAK0iG,yBAA0B1iG,KAAMuJ,IAE5DvJ,KAAKgzD,WAEN,OAAO,CAIf,IAAe,GAAX0qC,EACJ,CACI,GAAI19F,KAAK8hG,QAAU,EACnB,CACQ8B,SAAS5jG,KAAK8hG,UAEd9hG,KAAK8hG,SAIT,KAAKl/C,IAAY5iD,MAAK4hG,mBACtB,CAMI,GAL0C,gBAA/B5hG,MAAK2hG,WAAW/+C,KAEvB5iD,KAAK4hG,mBAAmBh/C,GAAY5iD,KAAK4hG,mBAAmBh/C,GAAYilC,WAAW7nF,KAAK2hG,WAAW/+C,GAAW,KAG9G5iD,KAAK+hG,MACT,CACI,GAAI8B,GAAM7jG,KAAK4hG,mBAAmBh/C,EAClC5iD,MAAK4hG,mBAAmBh/C,GAAY5iD,KAAK2hG,WAAW/+C,GACpD5iD,KAAK2hG,WAAW/+C,GAAYihD,EAGhC7jG,KAAK0hG,aAAa9+C,GAAY5iD,KAAK4hG,mBAAmBh/C,GAY1D,MATI5iD,MAAK+hG,QAEL/hG,KAAKgiG,WAAahiG,KAAKgiG,WAG3BhiG,KAAKkiG,WAAahuD,EAAOl0C,KAAKiiG,WAE9BjiG,KAAK6iG,OAAO/pD,SAAS94C,KAAKqhG,UAEnB,EAIPrhG,KAAKgzD,WAAY,EACjBhzD,KAAK8iG,WAAWhqD,SAAS94C,KAAKqhG,QAE9B,KAAK,GAAIl9F,GAAI,EAAG2/F,EAAmB9jG,KAAKuiG,eAAel+F,OAAYy/F,EAAJ3/F,EAAsBA,IAEjFnE,KAAKuiG,eAAep+F,GAAGiL,MAAM8kC,EAGjC,QAAO,EAKf,OAAO,IAMf9R,EAAO86C,MAAMr5E,UAAUsB,YAAci9B,EAAO86C,MAe5C96C,EAAOggE,QAOH2B,QASIC,KAAM,SAAWh1B,GAEb,MAAOA,KAWfi1B,WASIC,GAAI,SAAWl1B,GAEX,MAAOA,GAAIA,GAWfm1B,IAAK,SAAWn1B,GAEZ,MAAOA,IAAM,EAAIA,IAWrBo1B,MAAO,SAAWp1B,GAEd,OAAOA,GAAK,GAAM,EAAW,GAAMA,EAAIA,GAC9B,MAAUA,GAAMA,EAAI,GAAM,KAW3Cq1B,OASIH,GAAI,SAAWl1B,GAEX,MAAOA,GAAIA,EAAIA,GAWnBm1B,IAAK,SAAWn1B,GAEZ,QAASA,EAAIA,EAAIA,EAAI,GAWzBo1B,MAAO,SAAWp1B,GAEd,OAAOA,GAAK,GAAM,EAAW,GAAMA,EAAIA,EAAIA,EACpC,KAAUA,GAAK,GAAMA,EAAIA,EAAI,KAW5Cs1B,SASIJ,GAAI,SAAWl1B,GAEX,MAAOA,GAAIA,EAAIA,EAAIA,GAWvBm1B,IAAK,SAAWn1B,GAEZ,MAAO,MAAQA,EAAIA,EAAIA,EAAIA,GAW/Bo1B,MAAO,SAAWp1B,GAEd,OAAOA,GAAK,GAAM,EAAU,GAAMA,EAAIA,EAAIA,EAAIA,GACrC,KAAUA,GAAK,GAAMA,EAAIA,EAAIA,EAAI,KAWlDu1B,SASIL,GAAI,SAAWl1B,GAEX,MAAOA,GAAIA,EAAIA,EAAIA,EAAIA,GAW3Bm1B,IAAK,SAAWn1B,GAEZ,QAASA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,GAWjCo1B,MAAO,SAAWp1B,GAEd,OAAOA,GAAK,GAAM,EAAW,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EAC5C,KAAUA,GAAK,GAAMA,EAAIA,EAAIA,EAAIA,EAAI,KAWpDw1B,YASIN,GAAI,SAAWl1B,GAEX,MAAO,GAAI9sE,KAAKqE,IAAKyoE,EAAI9sE,KAAKC,GAAK,IAWvCgiG,IAAK,SAAWn1B,GAEZ,MAAO9sE,MAAKsE,IAAKwoE,EAAI9sE,KAAKC,GAAK,IAWnCiiG,MAAO,SAAWp1B,GAEd,MAAO,IAAQ,EAAI9sE,KAAKqE,IAAKrE,KAAKC,GAAK6sE,MAW/Cy1B,aASIP,GAAI,SAAWl1B,GAEX,MAAa,KAANA,EAAU,EAAI9sE,KAAK+3F,IAAK,KAAMjrB,EAAI,IAW7Cm1B,IAAK,SAAWn1B,GAEZ,MAAa,KAANA,EAAU,EAAI,EAAI9sE,KAAK+3F,IAAK,EAAG,IAAOjrB,IAWjDo1B,MAAO,SAAWp1B,GAEd,MAAW,KAANA,EAAiB,EACX,IAANA,EAAiB,GACfA,GAAK,GAAM,EAAW,GAAM9sE,KAAK+3F,IAAK,KAAMjrB,EAAI,GAChD,KAAU9sE,KAAK+3F,IAAK,EAAG,KAASjrB,EAAI,IAAQ,KAW3D01B,UASIR,GAAI,SAAWl1B,GAEX,MAAO,GAAI9sE,KAAKgrB,KAAM,EAAI8hD,EAAIA,IAWlCm1B,IAAK,SAAWn1B,GAEZ,MAAO9sE,MAAKgrB,KAAM,KAAQ8hD,EAAIA,IAWlCo1B,MAAO,SAAWp1B,GAEd,OAAOA,GAAK,GAAM,GAAY,IAAQ9sE,KAAKgrB,KAAM,EAAI8hD,EAAIA,GAAK,GACvD,IAAQ9sE,KAAKgrB,KAAM,GAAM8hD,GAAK,GAAKA,GAAK,KAWvD21B,SASIT,GAAI,SAAWl1B,GAEX,GAAIxkC,GAAGnlC,EAAI,GAAKnB,EAAI,EACpB,OAAW,KAAN8qE,EAAiB,EACX,IAANA,EAAiB,IAChB3pE,GAAS,EAAJA,GAAUA,EAAI,EAAGmlC,EAAItmC,EAAI,GAC/BsmC,EAAItmC,EAAIhC,KAAK0iG,KAAM,EAAIv/F,IAAQ,EAAInD,KAAKC,MAClCkD,EAAInD,KAAK+3F,IAAK,EAAG,IAAOjrB,GAAK,IAAQ9sE,KAAKsE,IAAmB,GAAZwoE,EAAIxkC,GAAYtoC,KAAKC,GAAO+B,MAW5FigG,IAAK,SAAWn1B,GAEZ,GAAIxkC,GAAGnlC,EAAI,GAAKnB,EAAI,EACpB,OAAW,KAAN8qE,EAAiB,EACX,IAANA,EAAiB,IAChB3pE,GAAS,EAAJA,GAAUA,EAAI,EAAGmlC,EAAItmC,EAAI,GAC/BsmC,EAAItmC,EAAIhC,KAAK0iG,KAAM,EAAIv/F,IAAQ,EAAInD,KAAKC,IACpCkD,EAAInD,KAAK+3F,IAAK,EAAG,IAAOjrB,GAAK9sE,KAAKsE,IAAmB,GAAZwoE,EAAIxkC,GAAYtoC,KAAKC,GAAO+B,GAAM,IAWxFkgG,MAAO,SAAWp1B,GAEd,GAAIxkC,GAAGnlC,EAAI,GAAKnB,EAAI,EACpB,OAAW,KAAN8qE,EAAiB,EACX,IAANA,EAAiB,IAChB3pE,GAAS,EAAJA,GAAUA,EAAI,EAAGmlC,EAAItmC,EAAI,GAC/BsmC,EAAItmC,EAAIhC,KAAK0iG,KAAM,EAAIv/F,IAAQ,EAAInD,KAAKC,KACtC6sE,GAAK,GAAM,GAAa,GAAQ3pE,EAAInD,KAAK+3F,IAAK,EAAG,IAAOjrB,GAAK,IAAQ9sE,KAAKsE,IAAmB,GAAZwoE,EAAIxkC,GAAYtoC,KAAKC,GAAO+B,GAC7GmB,EAAInD,KAAK+3F,IAAK,EAAG,KAAQjrB,GAAK,IAAQ9sE,KAAKsE,IAAmB,GAAZwoE,EAAIxkC,GAAYtoC,KAAKC,GAAO+B,GAAM,GAAM,KAWzG2gG,MASIX,GAAI,SAAWl1B,GAEX,GAAIxkC,GAAI,OACR,OAAOwkC,GAAIA,IAAQxkC,EAAI,GAAMwkC,EAAIxkC,IAWrC25D,IAAK,SAAWn1B,GAEZ,GAAIxkC,GAAI,OACR,SAASwkC,EAAIA,IAAQxkC,EAAI,GAAMwkC,EAAIxkC,GAAM,GAW7C45D,MAAO,SAAWp1B,GAEd,GAAIxkC,GAAI,SACR,QAAOwkC,GAAK,GAAM,EAAW,GAAQA,EAAIA,IAAQxkC,EAAI,GAAMwkC,EAAIxkC,GACxD,KAAUwkC,GAAK,GAAMA,IAAQxkC,EAAI,GAAMwkC,EAAIxkC,GAAM,KAWhEs6D,QASIZ,GAAI,SAAWl1B,GAEX,MAAO,GAAI5sC,EAAOggE,OAAO0C,OAAOX,IAAK,EAAIn1B,IAW7Cm1B,IAAK,SAAWn1B,GAEZ,MAAW,GAAI,KAAVA,EAEM,OAASA,EAAIA,EAEN,EAAI,KAAVA,EAED,QAAWA,GAAO,IAAM,MAAWA,EAAI,IAEhC,IAAM,KAAZA,EAED,QAAWA,GAAO,KAAO,MAAWA,EAAI,MAIxC,QAAWA,GAAO,MAAQ,MAAWA,EAAI,SAaxDo1B,MAAO,SAAWp1B,GAEd,MAAS,GAAJA,EAAoD,GAAnC5sC,EAAOggE,OAAO0C,OAAOZ,GAAQ,EAAJl1B,GACA,GAAxC5sC,EAAOggE,OAAO0C,OAAOX,IAAS,EAAJn1B,EAAQ,GAAY,MAQjE5sC,EAAOggE,OAAOC,QAAUjgE,EAAOggE,OAAO2B,OAAOC,KAgB7C5hE,EAAO0yB,KAAO,SAAU3iB,GAKpBnyC,KAAKmyC,KAAOA,EAOZnyC,KAAKk0C,KAAO,EAMZl0C,KAAK+kG,SAAW,EAMhB/kG,KAAKwd,IAAM,EAMXxd,KAAK61D,QAAU,EAMf71D,KAAKglG,WAAa,EAKlBhlG,KAAK21D,WAAa,GAMlB31D,KAAKilG,aAAe,KAMpBjlG,KAAKklG,YAAc,EAMnBllG,KAAKmlG,oBAAsB,EAM3BnlG,KAAK01D,WAAa,EAMlB11D,KAAKolG,gBAAiB,EAMtBplG,KAAKqlG,IAAM,EAKXrlG,KAAKslG,OAAS,IAKdtlG,KAAKulG,OAAS,EAMdvlG,KAAKwlG,MAAQ,IAKbxlG,KAAKylG,MAAQ,EAKbzlG,KAAKqmF,eAAiB,EAKtBrmF,KAAK0lG,SAAW,EAQhB1lG,KAAK2lG,QAAU,IAAO,GAKtB3lG,KAAK+uF,OAAS,EAKd/uF,KAAK2jG,cAAgB,EAKrB3jG,KAAKya,WAAa,EAKlBza,KAAK4lG,aAAe,EAKpB5lG,KAAK+gD,OAAS,GAAI3e,GAAOyjE,MAAM7lG,KAAKmyC,MAAM,GAM1CnyC,KAAK8lG,SAAW,EAMhB9lG,KAAK+lG,gBAAkB,EAMvB/lG,KAAKgmG,cAAgB,EAMrBhmG,KAAKimG,cAAe,EAMpBjmG,KAAKkmG,WAMLlmG,KAAKi9C,KAAO,EAMZj9C,KAAKk9C,GAAK,GAId9a,EAAO0yB,KAAKjxD,WAQRqyC,KAAM,WAEFl2C,KAAK8lG,SAAWvrF,KAAKiD,MACrBxd,KAAK+gD,OAAO3xC,SAWhB45B,IAAK,SAAUm9D,GAIX,MAFAnmG,MAAKkmG,QAAQ5hG,KAAK6hG,GAEXA,GAWX95F,OAAQ,SAAU+5F,GAEa,mBAAhBA,KAA+BA,GAAc,EAExD,IAAID,GAAQ,GAAI/jE,GAAOyjE,MAAM7lG,KAAKmyC,KAAMi0D,EAIxC,OAFApmG,MAAKkmG,QAAQ5hG,KAAK6hG,GAEXA,GASX1uD,UAAW,WAEP,IAAK,GAAItzC,GAAI,EAAGA,EAAInE,KAAKkmG,QAAQ7hG,OAAQF,IAErCnE,KAAKkmG,QAAQ/hG,GAAG+H,SAGpBlM,MAAKkmG,WAELlmG,KAAK+gD,OAAOtJ,aAWhBj+B,OAAQ,SAAU06B,GA2Dd,GAxDAl0C,KAAKk0C,KAAO35B,KAAKiD,MAGjBxd,KAAK+kG,SAAW/kG,KAAKwd,IAGrBxd,KAAKwd,IAAM02B,EAGXl0C,KAAK61D,QAAU71D,KAAKwd,IAAMxd,KAAK+kG,SAG/B/kG,KAAKya,WAAavY,KAAKmoC,MAAMnoC,KAAKgT,IAAI,EAAI,IAASlV,KAAK21D,YAAe31D,KAAKqmG,iBAAmBnyD,KAG/Fl0C,KAAKqmG,iBAAmBnyD,EAAOl0C,KAAKya,WAGpCza,KAAKklG,cACLllG,KAAKmlG,qBAAuBnlG,KAAK61D,QAG7B71D,KAAKklG,aAAiC,EAAlBllG,KAAK21D,aAGzB31D,KAAKilG,aAAiF,EAAlE/iG,KAAKmoC,MAAM,KAAOrqC,KAAKmlG,oBAAsBnlG,KAAKklG,cACtEllG,KAAKklG,YAAc,EACnBllG,KAAKmlG,oBAAsB,GAI/BnlG,KAAKqmF,eAAiB,EAAIrmF,KAAK21D,WAE3B31D,KAAK0lG,SAAW,GAAK1lG,KAAKqmF,eAAiBrmF,KAAK0lG,WAEhD1lG,KAAKqmF,eAAiBrmF,KAAK0lG,UAG3B1lG,KAAKolG,iBAELplG,KAAKwlG,MAAQtjG,KAAK23B,IAAI75B,KAAKwlG,MAAOxlG,KAAK61D,SACvC71D,KAAKylG,MAAQvjG,KAAKgT,IAAIlV,KAAKylG,MAAOzlG,KAAK61D,SAEvC71D,KAAK+uF,SAED/uF,KAAKwd,IAAMxd,KAAK+lG,gBAAkB,MAElC/lG,KAAKqlG,IAAMnjG,KAAKwlC,MAAqB,IAAd1nC,KAAK+uF,QAAkB/uF,KAAKwd,IAAMxd,KAAK+lG,kBAC9D/lG,KAAKslG,OAASpjG,KAAK23B,IAAI75B,KAAKslG,OAAQtlG,KAAKqlG,KACzCrlG,KAAKulG,OAASrjG,KAAKgT,IAAIlV,KAAKulG,OAAQvlG,KAAKqlG,KACzCrlG,KAAK+lG,gBAAkB/lG,KAAKwd,IAC5Bxd,KAAK+uF,OAAS,KAKjB/uF,KAAKmyC,KAAKuC,OASX,IANA10C,KAAK+gD,OAAOvnC,OAAOxZ,KAAKk0C,MAGxBl0C,KAAKk9C,GAAK,EACVl9C,KAAKi9C,KAAOj9C,KAAKkmG,QAAQ7hG,OAElBrE,KAAKk9C,GAAKl9C,KAAKi9C,MAEdj9C,KAAKkmG,QAAQlmG,KAAKk9C,IAAI1jC,OAAOxZ,KAAKk0C,MAElCl0C,KAAKk9C,MAILl9C,KAAKkmG,QAAQr5F,OAAO7M,KAAKk9C,GAAI,GAE7Bl9C,KAAKi9C,SAarBmC,WAAY,WAERp/C,KAAKgmG,cAAgBzrF,KAAKiD,MAE1Bxd,KAAK+gD,OAAO3K,OAIZ,KAFA,GAAIjyC,GAAInE,KAAKkmG,QAAQ7hG,OAEdF,KAEHnE,KAAKkmG,QAAQ/hG,GAAGm9F,UAWxBjiD,YAAa,WAGTr/C,KAAKk0C,KAAO35B,KAAKiD,MAEjBxd,KAAK2jG,cAAgB3jG,KAAKk0C,KAAOl0C,KAAKgmG,cAEtChmG,KAAK+gD,OAAOzK,QAIZ,KAFA,GAAInyC,GAAInE,KAAKkmG,QAAQ7hG,OAEdF,KAEHnE,KAAKkmG,QAAQ/hG,GAAGo9F,WAWxBhlD,oBAAqB,WACjB,MAAqC,MAA7Bv8C,KAAKk0C,KAAOl0C,KAAK8lG,WAU7BQ,aAAc,SAAUC,GACpB,MAAOvmG,MAAKk0C,KAAOqyD,GAUvBC,oBAAqB,SAAUD,GAC3B,MAA6B,MAArBvmG,KAAKk0C,KAAOqyD,IAQxBl+E,MAAO,WAEHroB,KAAK8lG,SAAW9lG,KAAKwd,IACrBxd,KAAKy3C,cAMbrV,EAAO0yB,KAAKjxD,UAAUsB,YAAci9B,EAAO0yB,KAiB3C1yB,EAAOyjE,MAAQ,SAAU1zD,EAAMi0D,GAEA,mBAAhBA,KAA+BA,GAAc,GAKxDpmG,KAAKmyC,KAAOA,EAMZnyC,KAAKymG,SAAU,EAKfzmG,KAAKomG,YAAcA,EAOnBpmG,KAAK0mG,SAAU,EAMf1mG,KAAK61D,QAAU,EAKf71D,KAAK+gD,UAKL/gD,KAAK8iG,WAAa,GAAI1gE,GAAOuW,OAO7B34C,KAAK2mG,SAAW,EAMhB3mG,KAAK2lG,QAAU,IAOf3lG,KAAK00C,QAAS,EAMd10C,KAAKyzD,aAAc,EAOnBzzD,KAAK8lG,SAAW,EAMhB9lG,KAAKgmG,cAAgB,EAMrBhmG,KAAK4mG,YAAc,EAMnB5mG,KAAK6mG,KAAOtsF,KAAKiD,MAMjBxd,KAAKi9C,KAAO,EAMZj9C,KAAK8mG,QAAU,EAMf9mG,KAAKk9C,GAAK,EAMVl9C,KAAK+mG,MAAQ,EAMb/mG,KAAKgnG,SAAW,GAQpB5kE,EAAOyjE,MAAMoB,OAAS,IAMtB7kE,EAAOyjE,MAAMqB,OAAS,IAMtB9kE,EAAOyjE,MAAMsB,KAAO,IAMpB/kE,EAAOyjE,MAAMuB,QAAU,IAEvBhlE,EAAOyjE,MAAMhiG,WAcTwI,OAAQ,SAAU+sE,EAAO+B,EAAMksB,EAAahtF,EAAUy8B,EAAiBxzC,GAEnE81E,EAAQl3E,KAAKwlC,MAAM0xC,EAEnB,IAAIiqB,GAAOjqB,CAIPiqB,IAFc,IAAdrjG,KAAK6mG,KAEG7mG,KAAKmyC,KAAK+B,KAAKA,KAIfl0C,KAAK6mG,IAGjB,IAAIv2E,GAAQ,GAAI8R,GAAOklE,WAAWtnG,KAAMo5E,EAAOiqB,EAAMgE,EAAalsB,EAAM9gE,EAAUy8B,EAAiBxzC,EAQnG,OANAtD,MAAK+gD,OAAOz8C,KAAKgsB,GAEjBtwB,KAAK8jD,QAEL9jD,KAAK0mG,SAAU,EAERp2E,GAgBX0Y,IAAK,SAAUowC,EAAO/+D,EAAUy8B,GAE5B,MAAO92C,MAAKqM,OAAO+sE,GAAO,EAAO,EAAG/+D,EAAUy8B,EAAiBh1C,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,KAkB1GqgB,OAAQ,SAAU+0D,EAAOiuB,EAAahtF,EAAUy8B,GAE5C,MAAO92C,MAAKqM,OAAO+sE,GAAO,EAAOiuB,EAAahtF,EAAUy8B,EAAiBh1C,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,KAiBpHm3E,KAAM,SAAU/B,EAAO/+D,EAAUy8B,GAE7B,MAAO92C,MAAKqM,OAAO+sE,GAAO,EAAM,EAAG/+D,EAAUy8B,EAAiBh1C,MAAM+B,UAAUgJ,OAAO9I,KAAKC,UAAW,KASzGoL,MAAO,SAAUgqE,GAEb,IAAIp5E,KAAKymG,QAAT,CAKAzmG,KAAK8lG,SAAW9lG,KAAKmyC,KAAK+B,KAAKA,MAAQklC,GAAS,GAEhDp5E,KAAKymG,SAAU,CAEf,KAAK,GAAItiG,GAAI,EAAGA,EAAInE,KAAK+gD,OAAO18C,OAAQF,IAEpCnE,KAAK+gD,OAAO58C,GAAGk/F,KAAOrjG,KAAK+gD,OAAO58C,GAAGi1E,MAAQp5E,KAAK8lG,WAU1D92F,KAAM,SAAUu4F,GAEZvnG,KAAKymG,SAAU,EAEY,mBAAhBc,KAA+BA,GAAc,GAEpDA,IAEAvnG,KAAK+gD,OAAO18C,OAAS,IAU7BwyC,OAAQ,SAAUvmB,GAEd,IAAK,GAAInsB,GAAI,EAAGA,EAAInE,KAAK+gD,OAAO18C,OAAQF,IAEpC,GAAInE,KAAK+gD,OAAO58C,KAAOmsB,EAGnB,MADAtwB,MAAK+gD,OAAO58C,GAAG48F,eAAgB,GACxB,CAIf,QAAO,GAQXj9C,MAAO,WAEC9jD,KAAK+gD,OAAO18C,OAAS,IAGrBrE,KAAK+gD,OAAO8C,KAAK7jD,KAAKkkD,aAEtBlkD,KAAK2mG,SAAW3mG,KAAK+gD,OAAO,GAAGsiD,OAUvCn/C,YAAa,SAAU7+C,EAAGC,GAEtB,MAAID,GAAEg+F,KAAO/9F,EAAE+9F,KAEJ,GAEFh+F,EAAEg+F,KAAO/9F,EAAE+9F,KAET,EAGJ,GASXmE,mBAAoB,WAIhB,IAFAxnG,KAAKk9C,GAAKl9C,KAAK+gD,OAAO18C,OAEfrE,KAAKk9C,MAEJl9C,KAAK+gD,OAAO/gD,KAAKk9C,IAAI6jD,eAErB/gG,KAAK+gD,OAAOl0C,OAAO7M,KAAKk9C,GAAI,EAIpCl9C,MAAKi9C,KAAOj9C,KAAK+gD,OAAO18C,OACxBrE,KAAKk9C,GAAK,GAYd1jC,OAAQ,SAAU06B,GAEd,GAAIl0C,KAAK00C,OAEL,OAAO,CAoBX,IAjBA10C,KAAK61D,QAAU3hB,EAAOl0C,KAAK6mG,KAC3B7mG,KAAK6mG,KAAO3yD,EAGRl0C,KAAK61D,QAAU71D,KAAK2lG,SAKpB3lG,KAAKynG,aAAavzD,EAAOl0C,KAAK61D,SAGlC71D,KAAK8mG,QAAU,EAGf9mG,KAAKwnG,qBAEDxnG,KAAKymG,SAAWzmG,KAAK6mG,MAAQ7mG,KAAK2mG,UAAY3mG,KAAKi9C,KAAO,EAC9D,CACI,KAAOj9C,KAAKk9C,GAAKl9C,KAAKi9C,MAAQj9C,KAAKymG,SAE3BzmG,KAAK6mG,MAAQ7mG,KAAK+gD,OAAO/gD,KAAKk9C,IAAImmD,MAGlCrjG,KAAKgnG,SAAYhnG,KAAK6mG,KAAO7mG,KAAK+gD,OAAO/gD,KAAKk9C,IAAIk8B,OAAUp5E,KAAK6mG,KAAO7mG,KAAK+gD,OAAO/gD,KAAKk9C,IAAImmD,MAEzFrjG,KAAKgnG,SAAW,IAEhBhnG,KAAKgnG,SAAWhnG,KAAK6mG,KAAO7mG,KAAK+gD,OAAO/gD,KAAKk9C,IAAIk8B,OAGjDp5E,KAAK+gD,OAAO/gD,KAAKk9C,IAAIi+B,QAAS,GAE9Bn7E,KAAK+gD,OAAO/gD,KAAKk9C,IAAImmD,KAAOrjG,KAAKgnG,SACjChnG,KAAK+gD,OAAO/gD,KAAKk9C,IAAI7iC,SAAS5W,MAAMzD,KAAK+gD,OAAO/gD,KAAKk9C,IAAIpG,gBAAiB92C,KAAK+gD,OAAO/gD,KAAKk9C,IAAI55C,OAE1FtD,KAAK+gD,OAAO/gD,KAAKk9C,IAAImqD,YAAc,GAExCrnG,KAAK+gD,OAAO/gD,KAAKk9C,IAAImqD,cACrBrnG,KAAK+gD,OAAO/gD,KAAKk9C,IAAImmD,KAAOrjG,KAAKgnG,SACjChnG,KAAK+gD,OAAO/gD,KAAKk9C,IAAI7iC,SAAS5W,MAAMzD,KAAK+gD,OAAO/gD,KAAKk9C,IAAIpG,gBAAiB92C,KAAK+gD,OAAO/gD,KAAKk9C,IAAI55C,QAI/FtD,KAAK8mG,UACL9mG,KAAK+gD,OAAO/gD,KAAKk9C,IAAI6jD,eAAgB,EACrC/gG,KAAK+gD,OAAO/gD,KAAKk9C,IAAI7iC,SAAS5W,MAAMzD,KAAK+gD,OAAO/gD,KAAKk9C,IAAIpG,gBAAiB92C,KAAK+gD,OAAO/gD,KAAKk9C,IAAI55C,OAGnGtD,KAAKk9C,IASTl9C,MAAK+gD,OAAO18C,OAASrE,KAAK8mG,QAE1B9mG,KAAK8jD,SAIL9jD,KAAK0mG,SAAU,EACf1mG,KAAK8iG,WAAWhqD,SAAS94C,OAIjC,MAAIA,MAAK0mG,SAAW1mG,KAAKomG,aAEd,GAIA,GASfhwD,MAAO,WAEEp2C,KAAKymG,UAKVzmG,KAAKyzD,aAAc,EAEfzzD,KAAK00C,SAKT10C,KAAKgmG,cAAgBhmG,KAAKmyC,KAAK+B,KAAKA,KAEpCl0C,KAAK00C,QAAS,KASlB4sD,OAAQ,YAEAthG,KAAK00C,QAAW10C,KAAKymG,UAKzBzmG,KAAKgmG,cAAgBhmG,KAAKmyC,KAAK+B,KAAKA,KAEpCl0C,KAAK00C,QAAS,IASlB+yD,aAAc,SAAUC,GAEpB,IAAK,GAAIvjG,GAAI,EAAGA,EAAInE,KAAK+gD,OAAO18C,OAAQF,IAEpC,IAAKnE,KAAK+gD,OAAO58C,GAAG48F,cACpB,CAEI,GAAIvJ,GAAIx3F,KAAK+gD,OAAO58C,GAAGk/F,KAAOqE,CAEtB,GAAJlQ,IAEAA,EAAI,GAIRx3F,KAAK+gD,OAAO58C,GAAGk/F,KAAOrjG,KAAK6mG,KAAOrP,EAI1C,GAAIhyF,GAAIxF,KAAK2mG,SAAWe,CAIpB1nG,MAAK2mG,SAFD,EAAJnhG,EAEgBxF,KAAK6mG,KAIL7mG,KAAK6mG,KAAOrhG,GAUpC8wC,OAAQ,WAEJ,GAAKt2C,KAAK00C,OAAV,CAKA,GAAIl3B,GAAMxd,KAAKmyC,KAAK+B,KAAKA,IACzBl0C,MAAK4mG,aAAeppF,EAAMxd,KAAK6mG,KAC/B7mG,KAAK6mG,KAAOrpF,EAEZxd,KAAKynG,aAAaznG,KAAKgmG,eAEvBhmG,KAAK00C,QAAS,EACd10C,KAAKyzD,aAAc,IASvB8tC,QAAS,WAEDvhG,KAAKyzD,aAMLzzD,KAAKs2C,UAWbmB,UAAW,WAEPz3C,KAAK8iG,WAAWrrD,YAChBz3C,KAAK+gD,OAAO18C,OAAS,EACrBrE,KAAKi9C,KAAO,EACZj9C,KAAKk9C,GAAK,GAUdhxC,QAAS,WAELlM,KAAK8iG,WAAWrrD,YAChBz3C,KAAKymG,SAAU,EACfzmG,KAAK+gD,UACL/gD,KAAKi9C,KAAO,EACZj9C,KAAKk9C,GAAK,IAWlB/zC,OAAOC,eAAeg5B,EAAOyjE,MAAMhiG,UAAW,QAE1CwF,IAAK,WACD,MAAOrJ,MAAK2mG,YAUpBx9F,OAAOC,eAAeg5B,EAAOyjE,MAAMhiG,UAAW,YAE1CwF,IAAK,WAED,MAAIrJ,MAAKymG,SAAWzmG,KAAK2mG,SAAW3mG,KAAK6mG,KAE9B7mG,KAAK2mG,SAAW3mG,KAAK6mG,KAIrB,KAYnB19F,OAAOC,eAAeg5B,EAAOyjE,MAAMhiG,UAAW,UAE1CwF,IAAK,WACD,MAAOrJ,MAAK+gD,OAAO18C,UAU3B8E,OAAOC,eAAeg5B,EAAOyjE,MAAMhiG,UAAW,MAE1CwF,IAAK,WAED,MAAIrJ,MAAKymG,QAEEzmG,KAAK6mG,KAAO7mG,KAAK8lG,SAAW9lG,KAAK4mG,YAIjC,KAYnBz9F,OAAOC,eAAeg5B,EAAOyjE,MAAMhiG,UAAW,WAE1CwF,IAAK,WAED,MAAIrJ,MAAKymG,QAEY,KAAVzmG,KAAK2nG,GAIL,KAOnBvlE,EAAOyjE,MAAMhiG,UAAUsB,YAAci9B,EAAOyjE,MAwB5CzjE,EAAOklE,WAAa,SAAUnB,EAAO/sB,EAAOiqB,EAAMgE,EAAalsB,EAAM9gE,EAAUy8B,EAAiBxzC,GAK/FtD,KAAKmmG,MAAQA,EAKbnmG,KAAKo5E,MAAQA,EAKbp5E,KAAKqjG,KAAOA,EAKZrjG,KAAKqnG,YAAcA,EAAc,EAKjCrnG,KAAKm7E,KAAOA,EAKZn7E,KAAKqa,SAAWA,EAKhBra,KAAK82C,gBAAkBA,EAKvB92C,KAAKsD,KAAOA,EAMTtD,KAAK+gG,eAAgB,GAIzB3+D,EAAOklE,WAAWzjG,UAAUsB,YAAci9B,EAAOklE,WAgBjDllE,EAAOohD,iBAAmB,SAAU1vD,GAKhC9zB,KAAK8zB,OAASA,EAKd9zB,KAAKmyC,KAAOre,EAAOqe,KAMnBnyC,KAAK4nG,aAAe,KAMpB5nG,KAAK6nG,YAAc,KAMnB7nG,KAAK8nG,iBAAkB,EAMvB9nG,KAAK+nG,UAAW,EAOhB/nG,KAAKgoG,WAAa,KAMlBhoG,KAAKioG,UAMLjoG,KAAKkoG,kBAIT9lE,EAAOohD,iBAAiB3/E,WAYpB0gF,cAAe,SAAUyB,EAAWj2E,GAEhC,GAAyB,mBAAdi2E,GAEP,OAAO,CAGX,IAAIhmF,KAAK+nG,SAGL,IAAK,GAAII,KAAQnoG,MAAKioG,OAElBjoG,KAAKioG,OAAOE,GAAMrb,gBAAgB9G,EAwB1C,OApBAhmF,MAAKgoG,WAAahiB,EAEG,mBAAVj2E,IAAmC,OAAVA,EAEhC/P,KAAK+P,MAAQ,EAIQ,gBAAVA,GAEP/P,KAAK2lF,UAAY51E,EAIjB/P,KAAK+P,MAAQA,EAIrB/P,KAAK+nG,UAAW,GAET,GAaXK,cAAe,SAAUpiB,EAAWj2E,GAIhC,GAFA/P,KAAKgoG,WAAahiB,EAAUthF,QAExB1E,KAAK+nG,SAGL,IAAK,GAAII,KAAQnoG,MAAKioG,OAElBjoG,KAAKioG,OAAOE,GAAMrb,gBAAgB9sF,KAAKgoG,WAsB/C,OAlBqB,mBAAVj4F,IAAmC,OAAVA,EAEhC/P,KAAK+P,MAAQ,EAIQ,gBAAVA,GAEP/P,KAAK2lF,UAAY51E,EAIjB/P,KAAK+P,MAAQA,EAIrB/P,KAAK+nG,UAAW,GAET,GAeX/+D,IAAK,SAAU3rB,EAAM0xE,EAAQzJ,EAAWnK,EAAMktB,GA+C1C,MA7CAtZ,GAASA,MACTzJ,EAAYA,GAAa,GAEL,mBAATnK,KAAwBA,GAAO,GAGX,mBAApBktB,KAIHA,EAFAtZ,GAA+B,gBAAdA,GAAO,IAEN,GAIA,GAKkB,OAAxC/uF,KAAK8zB,OAAOitB,OAAO45B,mBAEnB36E,KAAK8zB,OAAOitB,OAAO45B,iBAAmB,GAAIv4C,GAAOuW,OACjD34C,KAAK8zB,OAAOitB,OAAO65B,oBAAsB,GAAIx4C,GAAOuW,OACpD34C,KAAK8zB,OAAOitB,OAAO85B,gBAAkB,GAAIz4C,GAAOuW,QAGpD34C,KAAKkoG,cAAc7jG,OAAS,EAE5BrE,KAAKgoG,WAAWM,gBAAgBvZ,EAAQsZ,EAAiBroG,KAAKkoG,eAE9DloG,KAAKioG,OAAO5qF,GAAQ,GAAI+kB,GAAOmmE,UAAUvoG,KAAKmyC,KAAMnyC,KAAK8zB,OAAQzW,EAAMrd,KAAKgoG,WAAYhoG,KAAKkoG,cAAe5iB,EAAWnK,GAEvHn7E,KAAK6nG,YAAc7nG,KAAKioG,OAAO5qF,GAC/Brd,KAAK4nG,aAAe5nG,KAAK6nG,YAAYD,aAKjC5nG,KAAK8zB,OAAOqK,gBAGZn+B,KAAK8zB,OAAOqK,eAAgB,EAC5Bn+B,KAAKw0B,eAAgB,GAGlBx0B,KAAKioG,OAAO5qF,IAYvBmrF,eAAgB,SAAUzZ,EAAQsZ,GAEC,mBAApBA,KAAmCA,GAAkB,EAEhE,KAAK,GAAIlkG,GAAI,EAAGA,EAAI4qF,EAAO1qF,OAAQF,IAE/B,GAAIkkG,KAAoB,GAEpB,GAAItZ,EAAO5qF,GAAKnE,KAAKgoG,WAAWxqE,MAE5B,OAAO,MAKX,IAAIx9B,KAAKgoG,WAAWS,eAAe1Z,EAAO5qF,OAAQ,EAE9C,OAAO,CAKnB,QAAO,GAeXkhF,KAAM,SAAUhoE,EAAMioE,EAAWnK,EAAMoK,GAEnC,MAAIvlF,MAAKioG,OAAO5qF,GAERrd,KAAK6nG,cAAgB7nG,KAAKioG,OAAO5qF,GAE7Brd,KAAK6nG,YAAYa,aAAc,GAE/B1oG,KAAK6nG,YAAYnzD,QAAS,EACnB10C,KAAK6nG,YAAYxiB,KAAKC,EAAWnK,EAAMoK,IAE3CvlF,KAAK6nG,aAIR7nG,KAAK6nG,aAAe7nG,KAAK6nG,YAAYa,WAErC1oG,KAAK6nG,YAAY74F,OAGrBhP,KAAK6nG,YAAc7nG,KAAKioG,OAAO5qF,GAC/Brd,KAAK6nG,YAAYnzD,QAAS,EAC1B10C,KAAK4nG,aAAe5nG,KAAK6nG,YAAYD,aAC9B5nG,KAAK6nG,YAAYxiB,KAAKC,EAAWnK,EAAMoK,IArBtD,QAmCJv2E,KAAM,SAAUqO,EAAM0nE,GAEQ,mBAAfA,KAA8BA,GAAa,GAElC,gBAAT1nE,GAEHrd,KAAKioG,OAAO5qF,KAEZrd,KAAK6nG,YAAc7nG,KAAKioG,OAAO5qF,GAC/Brd,KAAK6nG,YAAY74F,KAAK+1E,IAKtB/kF,KAAK6nG,aAEL7nG,KAAK6nG,YAAY74F,KAAK+1E,IAalCvrE,OAAQ,WAEJ,MAAIxZ,MAAK8nG,kBAAoB9nG,KAAK8zB,OAAO7rB,SAE9B,EAGPjI,KAAK6nG,aAAe7nG,KAAK6nG,YAAYruF,YAAa,GAElDxZ,KAAK4nG,aAAe5nG,KAAK6nG,YAAYD,cAC9B,IAGJ,GAUX1vD,KAAM,SAAUoJ,GAERthD,KAAK6nG,cAEL7nG,KAAK6nG,YAAY3vD,KAAKoJ,GACtBthD,KAAK4nG,aAAe5nG,KAAK6nG,YAAYD,eAW7CpmD,SAAU,SAAUF,GAEZthD,KAAK6nG,cAEL7nG,KAAK6nG,YAAYrmD,SAASF,GAC1BthD,KAAK4nG,aAAe5nG,KAAK6nG,YAAYD,eAY7Ce,aAAc,SAAUtrF,GAEpB,MAAoB,gBAATA,IAEHrd,KAAKioG,OAAO5qF,GAELrd,KAAKioG,OAAO5qF,GAIpB,MASXurF,aAAc,WAEV5oG,KAAK8zB,OAAO9jB,WAAW/P,KAAK+R,aAAahS,KAAK4nG,aAAahgD,OAEvD5nD,KAAK8zB,OAAOqK,gBAEZn+B,KAAKm+B,eAAgB,EACrBn+B,KAAKw0B,eAAgB,IAW7BtoB,QAAS,WAEL,GAAIi8F,GAAO,IAEX,KAAK,GAAIA,KAAQnoG,MAAKioG,OAEdjoG,KAAKioG,OAAO3hE,eAAe6hE,IAE3BnoG,KAAKioG,OAAOE,GAAMj8F,SAI1BlM,MAAKioG,UACLjoG,KAAKgoG,WAAa,KAClBhoG,KAAK6oG,YAAc,EACnB7oG,KAAK6nG,YAAc,KACnB7nG,KAAK4nG,aAAe,OAM5BxlE,EAAOohD,iBAAiB3/E,UAAUsB,YAAci9B,EAAOohD,iBAOvDr6E,OAAOC,eAAeg5B,EAAOohD,iBAAiB3/E,UAAW,aAErDwF,IAAK,WACD,MAAOrJ,MAAKgoG,cAUpB7+F,OAAOC,eAAeg5B,EAAOohD,iBAAiB3/E,UAAW,cAErDwF,IAAK,WAED,MAAOrJ,MAAKgoG,WAAWxqE,SAS/Br0B,OAAOC,eAAeg5B,EAAOohD,iBAAiB3/E,UAAW,UAErDwF,IAAK,WAED,MAAOrJ,MAAK6nG,YAAYiB,UAI5Bx/F,IAAK,SAAUC,GAEXvJ,KAAK6nG,YAAYnzD,OAASnrC,KAUlCJ,OAAOC,eAAeg5B,EAAOohD,iBAAiB3/E,UAAW,QAErDwF,IAAK,WAED,MAAIrJ,MAAK6nG,YAEE7nG,KAAK6nG,YAAYxqF,KAF5B,UAaRlU,OAAOC,eAAeg5B,EAAOohD,iBAAiB3/E,UAAW,SAErDwF,IAAK,WAED,MAAIrJ,MAAK4nG,aAEE5nG,KAAK6oG,YAFhB,QAOJv/F,IAAK,SAAUC,GAEU,gBAAVA,IAA0D,OAApCvJ,KAAKgoG,WAAW/hB,SAAS18E,KAEtDvJ,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAAS18E,GAEzCvJ,KAAK4nG,eAEL5nG,KAAK6oG,YAAct/F,EAEnBvJ,KAAK8zB,OAAOoM,SAASlgC,KAAK4nG,cAEtB5nG,KAAK8zB,OAAOqK,gBAEZn+B,KAAKm+B,eAAgB,EACrBn+B,KAAKw0B,eAAgB,QAazCrrB,OAAOC,eAAeg5B,EAAOohD,iBAAiB3/E,UAAW,aAErDwF,IAAK,WAED,MAAIrJ,MAAK4nG,aAEE5nG,KAAK4nG,aAAavqF,KAF7B,QAOJ/T,IAAK,SAAUC,GAEU,gBAAVA,IAAgE,OAA1CvJ,KAAKgoG,WAAW7hB,eAAe58E,IAE5DvJ,KAAK4nG,aAAe5nG,KAAKgoG,WAAW7hB,eAAe58E,GAE/CvJ,KAAK4nG,eAEL5nG,KAAK6oG,YAAc7oG,KAAK4nG,aAAaj7F,MAErC3M,KAAK8zB,OAAOoM,SAASlgC,KAAK4nG,cAEtB5nG,KAAK8zB,OAAOqK,gBAEZn+B,KAAKm+B,eAAgB,EACrBn+B,KAAKw0B,eAAgB,KAM7BjxB,QAAQo0C,KAAK,yBAA2BpuC,MA2BpD64B,EAAOmmE,UAAY,SAAUp2D,EAAM9pC,EAAQgV,EAAM2oE,EAAW+I,EAAQzJ,EAAWnK,GAEvD,mBAATA,KAAwBA,GAAO,GAK1Cn7E,KAAKmyC,KAAOA,EAMZnyC,KAAKijG,QAAU56F,EAMfrI,KAAKgoG,WAAahiB,EAKlBhmF,KAAKqd,KAAOA,EAMZrd,KAAK+oG,WACL/oG,KAAK+oG,QAAU/oG,KAAK+oG,QAAQ5tF,OAAO4zE,GAKnC/uF,KAAKo5E,MAAQ,IAAOkM,EAKpBtlF,KAAKm7E,KAAOA,EAKZn7E,KAAKgpG,UAAY,EAMjBhpG,KAAKulF,gBAAiB,EAMtBvlF,KAAKipG,YAAa,EAMlBjpG,KAAK0oG,WAAY,EAMjB1oG,KAAK8oG,UAAW,EAOhB9oG,KAAKkpG,gBAAkB,EAOvBlpG,KAAK6oG,YAAc,EAOnB7oG,KAAKmpG,WAAa,EAOlBnpG,KAAKopG,WAAa,EAKlBppG,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ/oG,KAAK6oG,cAK/D7oG,KAAK4iG,QAAU,GAAIxgE,GAAOuW,OAM1B34C,KAAKqpG,SAAW,KAKhBrpG,KAAK8iG,WAAa,GAAI1gE,GAAOuW,OAK7B34C,KAAK6iG,OAAS,GAAIzgE,GAAOuW,OAGzB34C,KAAKmyC,KAAKgE,QAAQnN,IAAIhpC,KAAKm2C,QAASn2C,MACpCA,KAAKmyC,KAAKkE,SAASrN,IAAIhpC,KAAKq2C,SAAUr2C,OAI1CoiC,EAAOmmE,UAAU1kG,WAWbwhF,KAAM,SAAUC,EAAWnK,EAAMoK,GA6C7B,MA3CyB,gBAAdD,KAGPtlF,KAAKo5E,MAAQ,IAAOkM,GAGJ,iBAATnK,KAGPn7E,KAAKm7E,KAAOA,GAGc,mBAAnBoK,KAGPvlF,KAAKulF,eAAiBA,GAG1BvlF,KAAK0oG,WAAY,EACjB1oG,KAAKipG,YAAa,EAClBjpG,KAAK00C,QAAS,EACd10C,KAAKgpG,UAAY,EAEjBhpG,KAAKspG,eAAiBtpG,KAAKmyC,KAAK+B,KAAKA,KACrCl0C,KAAKupG,eAAiBvpG,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKo5E,MAEjDp5E,KAAK6oG,YAAc,EAEnB7oG,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ/oG,KAAK6oG,cAE/D7oG,KAAKijG,QAAQ/iE,SAASlgC,KAAK4nG,cAGvB5nG,KAAKijG,QAAQ9kE,gBAEbn+B,KAAKijG,QAAQ9kE,eAAgB,EAC7Bn+B,KAAKijG,QAAQzuE,eAAgB,GAGjCx0B,KAAKijG,QAAQliD,OAAO45B,iBAAiB7hC,SAAS94C,KAAKijG,QAASjjG,MAE5DA,KAAK4iG,QAAQ9pD,SAAS94C,KAAKijG,QAASjjG,MAE7BA,MASXk3C,QAAS,WAELl3C,KAAK0oG,WAAY,EACjB1oG,KAAKipG,YAAa,EAClBjpG,KAAK00C,QAAS,EACd10C,KAAKgpG,UAAY,EAEjBhpG,KAAKspG,eAAiBtpG,KAAKmyC,KAAK+B,KAAKA,KACrCl0C,KAAKupG,eAAiBvpG,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKo5E,MAEjDp5E,KAAK6oG,YAAc,EAEnB7oG,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ/oG,KAAK6oG,cAE/D7oG,KAAKijG,QAAQ/iE,SAASlgC,KAAK4nG,cAE3B5nG,KAAK4iG,QAAQ9pD,SAAS94C,KAAKijG,QAASjjG,OAWxCkgC,SAAU,SAASnuB,EAASy3F,GAExB,GAAIC,EAQJ,IANkC,mBAAvBD,KAEPA,GAAqB,GAIF,gBAAZz3F,GAEP,IAAK,GAAI5N,GAAI,EAAGA,EAAInE,KAAK+oG,QAAQ1kG,OAAQF,IAEjCnE,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ5kG,IAAIkZ,OAAStL,IAEnD03F,EAAatlG,OAIpB,IAAuB,gBAAZ4N,GAEZ,GAAIy3F,EAEAC,EAAa13F,MAIb,KAAK,GAAI5N,GAAI,EAAGA,EAAInE,KAAK+oG,QAAQ1kG,OAAQF,IAEjCnE,KAAK+oG,QAAQ5kG,KAAOslG,IAEpBA,EAAatlG,EAMzBslG,KAGAzpG,KAAK6oG,YAAcY,EAAa,EAGhCzpG,KAAKupG,eAAiBvpG,KAAKmyC,KAAK+B,KAAKA,KAErCl0C,KAAKwZ,WAabxK,KAAM,SAAU+1E,EAAY2kB,GAEE,mBAAf3kB,KAA8BA,GAAa,GACtB,mBAArB2kB,KAAoCA,GAAmB,GAElE1pG,KAAK0oG,WAAY,EACjB1oG,KAAKipG,YAAa,EAClBjpG,KAAK00C,QAAS,EAEVqwC,IAEA/kF,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ,IAC1D/oG,KAAKijG,QAAQ/iE,SAASlgC,KAAK4nG,eAG3B8B,IAEA1pG,KAAKijG,QAAQliD,OAAO65B,oBAAoB9hC,SAAS94C,KAAKijG,QAASjjG,MAC/DA,KAAK8iG,WAAWhqD,SAAS94C,KAAKijG,QAASjjG,QAU/Cm2C,QAAS,WAEDn2C,KAAK0oG,YAEL1oG,KAAKmpG,WAAanpG,KAAKupG,eAAiBvpG,KAAKmyC,KAAK+B,KAAKA,OAU/DmC,SAAU,WAEFr2C,KAAK0oG,YAEL1oG,KAAKupG,eAAiBvpG,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKmpG,aAUzD3vF,OAAQ,WAEJ,MAAIxZ,MAAK8oG,UAEE,EAGP9oG,KAAK0oG,WAAa1oG,KAAKmyC,KAAK+B,KAAKA,MAAQl0C,KAAKupG,gBAE9CvpG,KAAKopG,WAAa,EAGlBppG,KAAKmpG,WAAanpG,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKupG,eAE7CvpG,KAAKspG,eAAiBtpG,KAAKmyC,KAAK+B,KAAKA,KAEjCl0C,KAAKmpG,WAAanpG,KAAKo5E,QAGvBp5E,KAAKopG,WAAalnG,KAAKmoC,MAAMrqC,KAAKmpG,WAAanpG,KAAKo5E,OACpDp5E,KAAKmpG,YAAenpG,KAAKopG,WAAappG,KAAKo5E,OAI/Cp5E,KAAKupG,eAAiBvpG,KAAKmyC,KAAK+B,KAAKA,MAAQl0C,KAAKo5E,MAAQp5E,KAAKmpG,YAE/DnpG,KAAK6oG,aAAe7oG,KAAKopG,WAErBppG,KAAK6oG,aAAe7oG,KAAK+oG,QAAQ1kG,SAE7BrE,KAAKm7E,MAELn7E,KAAK6oG,aAAe7oG,KAAK+oG,QAAQ1kG,OACjCrE,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ/oG,KAAK6oG,cAC/D7oG,KAAKgpG,YACLhpG,KAAKijG,QAAQliD,OAAO85B,gBAAgB/hC,SAAS94C,KAAKijG,QAASjjG,MAC3DA,KAAK6iG,OAAO/pD,SAAS94C,KAAKijG,QAASjjG,OAInCA,KAAKg/B,YAIbh/B,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ/oG,KAAK6oG,cAE3D7oG,KAAK4nG,eAEL5nG,KAAKijG,QAAQ/iE,SAASlgC,KAAK4nG,cAEvB5nG,KAAKijG,QAAQ9kE,gBAEbn+B,KAAKijG,QAAQ9kE,eAAgB,EAC7Bn+B,KAAKijG,QAAQzuE,eAAgB,GAG7Bx0B,KAAKqpG,UAELrpG,KAAKqpG,SAASvwD,SAAS94C,KAAMA,KAAK4nG,gBAInC,IAGJ,GAUX1vD,KAAM,SAAUoJ,GAEY,mBAAbA,KAA4BA,EAAW,EAElD,IAAIvxC,GAAQ/P,KAAK6oG,YAAcvnD,CAE3BvxC,IAAS/P,KAAK+oG,QAAQ1kG,SAElBrE,KAAKm7E,KAELprE,GAAS/P,KAAK+oG,QAAQ1kG,OAItB0L,EAAQ/P,KAAK+oG,QAAQ1kG,OAAS,GAIlC0L,IAAU/P,KAAK6oG,cAEf7oG,KAAK6oG,YAAc94F,EAEnB/P,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ/oG,KAAK6oG,cAE3D7oG,KAAK4nG,eAEL5nG,KAAKijG,QAAQ/iE,SAASlgC,KAAK4nG,cAEvB5nG,KAAKijG,QAAQ9kE,gBAEbn+B,KAAKijG,QAAQ9kE,eAAgB,EAC7Bn+B,KAAKijG,QAAQzuE,eAAgB,IAIjCx0B,KAAKqpG,UAELrpG,KAAKqpG,SAASvwD,SAAS94C,KAAMA,KAAK4nG,gBAY9CpmD,SAAU,SAAUF,GAEQ,mBAAbA,KAA4BA,EAAW,EAElD,IAAIvxC,GAAQ/P,KAAK6oG,YAAcvnD,CAEnB,GAARvxC,IAEI/P,KAAKm7E,KAELprE,EAAQ/P,KAAK+oG,QAAQ1kG,OAAS0L,EAI9BA,KAIJA,IAAU/P,KAAK6oG,cAEf7oG,KAAK6oG,YAAc94F,EAEnB/P,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ/oG,KAAK6oG,cAE3D7oG,KAAK4nG,eAEL5nG,KAAKijG,QAAQ/iE,SAASlgC,KAAK4nG,cAEvB5nG,KAAKijG,QAAQ9kE,gBAEbn+B,KAAKijG,QAAQ9kE,eAAgB,EAC7Bn+B,KAAKijG,QAAQzuE,eAAgB,IAIjCx0B,KAAKqpG,UAELrpG,KAAKqpG,SAASvwD,SAAS94C,KAAMA,KAAK4nG,gBAY9C9a,gBAAiB,SAAU9G,GAEvBhmF,KAAKgoG,WAAahiB,EAClBhmF,KAAK4nG,aAAe5nG,KAAKgoG,WAAahoG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQ/oG,KAAK6oG,YAAc7oG,KAAK+oG,QAAQ1kG,SAAW,MAS3H6H,QAAS,WAELlM,KAAKmyC,KAAKgE,QAAQU,OAAO72C,KAAKm2C,QAASn2C,MACvCA,KAAKmyC,KAAKkE,SAASQ,OAAO72C,KAAKq2C,SAAUr2C,MAEzCA,KAAKmyC,KAAO,KACZnyC,KAAKijG,QAAU,KACfjjG,KAAK+oG,QAAU,KACf/oG,KAAKgoG,WAAa,KAClBhoG,KAAK4nG,aAAe,KACpB5nG,KAAK0oG,WAAY,EAEjB1oG,KAAK4iG,QAAQjoD,UACb36C,KAAK6iG,OAAOloD,UACZ36C,KAAK8iG,WAAWnoD,UAEZ36C,KAAKqpG,UAELrpG,KAAKqpG,SAAS1uD,WAWtB3b,SAAU,WAENh/B,KAAK0oG,WAAY,EACjB1oG,KAAKipG,YAAa,EAClBjpG,KAAK00C,QAAS,EAEd10C,KAAKijG,QAAQliD,OAAO65B,oBAAoB9hC,SAAS94C,KAAKijG,QAASjjG,MAE/DA,KAAK8iG,WAAWhqD,SAAS94C,KAAKijG,QAASjjG,MAEnCA,KAAKulF,gBAELvlF,KAAKijG,QAAQ7e,SAOzBhiD,EAAOmmE,UAAU1kG,UAAUsB,YAAci9B,EAAOmmE,UAMhDp/F,OAAOC,eAAeg5B,EAAOmmE,UAAU1kG,UAAW,UAE9CwF,IAAK,WAED,MAAOrJ,MAAK8oG,UAIhBx/F,IAAK,SAAUC,GAEXvJ,KAAK8oG,SAAWv/F,EAEZA,EAGAvJ,KAAKkpG,gBAAkBlpG,KAAKmyC,KAAK+B,KAAKA,KAKlCl0C,KAAK0oG,YAEL1oG,KAAKupG,eAAiBvpG,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKo5E,UAajEjwE,OAAOC,eAAeg5B,EAAOmmE,UAAU1kG,UAAW,cAE9CwF,IAAK,WACD,MAAOrJ,MAAK+oG,QAAQ1kG,UAS5B8E,OAAOC,eAAeg5B,EAAOmmE,UAAU1kG,UAAW,SAE9CwF,IAAK,WAED,MAA0B,QAAtBrJ,KAAK4nG,aAEE5nG,KAAK4nG,aAAaj7F,MAIlB3M,KAAK6oG,aAKpBv/F,IAAK,SAAUC,GAEXvJ,KAAK4nG,aAAe5nG,KAAKgoG,WAAW/hB,SAASjmF,KAAK+oG,QAAQx/F,IAEhC,OAAtBvJ,KAAK4nG,eAEL5nG,KAAK6oG,YAAct/F,EACnBvJ,KAAKijG,QAAQ/iE,SAASlgC,KAAK4nG,cAEvB5nG,KAAKqpG,UAELrpG,KAAKqpG,SAASvwD,SAAS94C,KAAMA,KAAK4nG,kBAYlDz+F,OAAOC,eAAeg5B,EAAOmmE,UAAU1kG,UAAW,SAE9CwF,IAAK,WAED,MAAOnH,MAAKwlC,MAAM,IAAO1nC,KAAKo5E,QAIlC9vE,IAAK,SAAUC,GAEPA,GAAS,IAETvJ,KAAKo5E,MAAQ,IAAO7vE,MAWhCJ,OAAOC,eAAeg5B,EAAOmmE,UAAU1kG,UAAW,gBAE9CwF,IAAK,WAED,MAA0B,QAAlBrJ,KAAKqpG,UAIjB//F,IAAK,SAAUC,GAEPA,GAA2B,OAAlBvJ,KAAKqpG,SAEdrpG,KAAKqpG,SAAW,GAAIjnE,GAAOuW,OAErBpvC,GAA2B,OAAlBvJ,KAAKqpG,WAEpBrpG,KAAKqpG,SAAS1uD,UACd36C,KAAKqpG,SAAW,SAqB5BjnE,EAAOmmE,UAAUoB,mBAAqB,SAAUC,EAAQx6F,EAAOJ,EAAM66F,EAAQC,GAEnD,mBAAXD,KAA0BA,EAAS,GAE9C,IAAIliE,MACA53B,EAAQ,EAEZ,IAAYf,EAARI,EAEA,IAAK,GAAIjL,GAAIiL,EAAYJ,GAAL7K,EAAWA,IAKvB4L,EAHmB,gBAAZ+5F,GAGC1nE,EAAOgC,MAAM0B,IAAI3hC,EAAEqQ,WAAYs1F,EAAS,IAAK,GAI7C3lG,EAAEqQ,WAGdzE,EAAQ65F,EAAS75F,EAAQ85F,EAEzBliE,EAAOrjC,KAAKyL,OAKhB,KAAK,GAAI5L,GAAIiL,EAAOjL,GAAK6K,EAAM7K,IAKvB4L,EAHmB,gBAAZ+5F,GAGC1nE,EAAOgC,MAAM0B,IAAI3hC,EAAEqQ,WAAYs1F,EAAS,IAAK,GAI7C3lG,EAAEqQ,WAGdzE,EAAQ65F,EAAS75F,EAAQ85F,EAEzBliE,EAAOrjC,KAAKyL,EAIpB,OAAO43B,IAuBXvF,EAAOo7C,MAAQ,SAAU7wE,EAAOpI,EAAGC,EAAG2C,EAAOC,EAAQiW,EAAMuqC,GAKvD5nD,KAAK2M,MAAQA,EAKb3M,KAAKuE,EAAIA,EAKTvE,KAAKwE,EAAIA,EAKTxE,KAAKmH,MAAQA,EAKbnH,KAAKoH,OAASA,EAKdpH,KAAKqd,KAAOA,EAKZrd,KAAK4nD,KAAOA,EAKZ5nD,KAAKk8B,QAAUh6B,KAAKmoC,MAAMljC,EAAQ,GAKlCnH,KAAKm8B,QAAUj6B,KAAKmoC,MAAMjjC,EAAS,GAKnCpH,KAAKynC,SAAWrF,EAAOlgC,KAAKulC,SAAS,EAAG,EAAGtgC,EAAOC,GAMlDpH,KAAK+pG,SAAU,EAMf/pG,KAAKgqG,kBAAoB,KAMzBhqG,KAAKykF,SAAU,EAKfzkF,KAAK4kF,YAAcz9E,EAKnBnH,KAAK6kF,YAAcz9E,EAMnBpH,KAAK0kF,kBAAoB,EAMzB1kF,KAAK2kF,kBAAoB,EAMzB3kF,KAAKiqG,kBAAoB,EAMzBjqG,KAAKkqG,kBAAoB,EAKzBlqG,KAAKkmC,MAAQlmC,KAAKuE,EAAIvE,KAAKmH,MAK3BnH,KAAKioC,OAASjoC,KAAKwE,EAAIxE,KAAKoH,QAIhCg7B,EAAOo7C,MAAM35E,WAcTsmG,QAAS,SAAU1lB,EAAS2lB,EAAaC,EAAcC,EAAOC,EAAOC,EAAWC,GAE5EzqG,KAAKykF,QAAUA,EAEXA,IAEAzkF,KAAK4kF,YAAcwlB,EACnBpqG,KAAK6kF,YAAcwlB,EACnBrqG,KAAKk8B,QAAUh6B,KAAKmoC,MAAM+/D,EAAc,GACxCpqG,KAAKm8B,QAAUj6B,KAAKmoC,MAAMggE,EAAe,GACzCrqG,KAAK0kF,kBAAoB4lB,EACzBtqG,KAAK2kF,kBAAoB4lB,EACzBvqG,KAAKiqG,kBAAoBO,EACzBxqG,KAAKkqG,kBAAoBO,IAYjC/lG,MAAO,WAEH,GAAIijC,GAAS,GAAIvF,GAAOo7C,MAAMx9E,KAAK2M,MAAO3M,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKmH,MAAOnH,KAAKoH,OAAQpH,KAAKqd,KAAMrd,KAAK4nD,KAEnG,KAAK,GAAItjB,KAAQtkC,MAETA,KAAKsmC,eAAehC,KAEpBqD,EAAOrD,GAAQtkC,KAAKskC,GAI5B,OAAOqD,IAWX+iE,QAAS,SAAU5iE,GAWf,MATmB,mBAARA,GAEPA,EAAM,GAAI1F,GAAOl7B,UAAUlH,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKmH,MAAOnH,KAAKoH,QAI5D0gC,EAAIT,MAAMrnC,KAAKuE,EAAGvE,KAAKwE,EAAGxE,KAAKmH,MAAOnH,KAAKoH,QAGxC0gC,IAMf1F,EAAOo7C,MAAM35E,UAAUsB,YAAci9B,EAAOo7C,MAc5Cp7C,EAAOsqD,UAAY,WAMf1sF,KAAK+oG,WAOL/oG,KAAK2qG,gBAITvoE,EAAOsqD,UAAU7oF,WASbgpF,SAAU,SAAU98E,GAWhB,MATAA,GAAMpD,MAAQ3M,KAAK+oG,QAAQ1kG,OAE3BrE,KAAK+oG,QAAQzkG,KAAKyL,GAEC,KAAfA,EAAMsN,OAENrd,KAAK2qG,YAAY56F,EAAMsN,MAAQtN,EAAMpD,OAGlCoD,GAWXk2E,SAAU,SAAUt5E,GAOhB,MALIA,GAAQ3M,KAAK+oG,QAAQ1kG,SAErBsI,EAAQ,GAGL3M,KAAK+oG,QAAQp8F,IAWxBw5E,eAAgB,SAAU9oE,GAEtB,MAAsC,gBAA3Brd,MAAK2qG,YAAYttF,GAEjBrd,KAAK+oG,QAAQ/oG,KAAK2qG,YAAYttF,IAGlC,MAWXorF,eAAgB,SAAUprF,GAEtB,MAA8B,OAA1Brd,KAAK2qG,YAAYttF,IAEV,GAGJ,GAUX3Y,MAAO,WAKH,IAAK,GAHDijC,GAAS,GAAIvF,GAAOsqD,UAGfvoF,EAAI,EAAGA,EAAInE,KAAK+oG,QAAQ1kG,OAAQF,IAErCwjC,EAAOohE,QAAQzkG,KAAKtE,KAAK+oG,QAAQ5kG,GAAGO,QAGxC,KAAK,GAAIR,KAAKlE,MAAK2qG,YAEX3qG,KAAK2qG,YAAYrkE,eAAepiC,IAEhCyjC,EAAOgjE,YAAYrmG,KAAKtE,KAAK2qG,YAAYzmG,GAIjD,OAAOyjC,IAaXijE,cAAe,SAAUx7F,EAAOtB,EAAK65B,GAEX,mBAAXA,KAA0BA,KAErC,KAAK,GAAIxjC,GAAIiL,EAAYtB,GAAL3J,EAAUA,IAE1BwjC,EAAOrjC,KAAKtE,KAAK+oG,QAAQ5kG,GAG7B,OAAOwjC,IAcXqnD,UAAW,SAAUD,EAAQsZ,EAAiB1gE,GAK1C,GAH+B,mBAApB0gE,KAAmCA,GAAkB,GAC1C,mBAAX1gE,KAA0BA,MAEf,mBAAXonD,IAA4C,IAAlBA,EAAO1qF,OAGxC,IAAK,GAAIF,GAAI,EAAGA,EAAInE,KAAK+oG,QAAQ1kG,OAAQF,IAGrCwjC,EAAOrjC,KAAKtE,KAAK+oG,QAAQ5kG,QAM7B,KAAK,GAAIA,GAAI,EAAGm3B,EAAMyzD,EAAO1qF,OAAYi3B,EAAJn3B,EAASA,IAMtCwjC,EAAOrjC,KAHP+jG,EAGYroG,KAAKimF,SAAS8I,EAAO5qF,IAKrBnE,KAAKmmF,eAAe4I,EAAO5qF,IAKnD,OAAOwjC,IAcX2gE,gBAAiB,SAAUvZ,EAAQsZ,EAAiB1gE,GAKhD,GAH+B,mBAApB0gE,KAAmCA,GAAkB,GAC1C,mBAAX1gE,KAA0BA,MAEf,mBAAXonD,IAA4C,IAAlBA,EAAO1qF,OAGxC,IAAK,GAAIF,GAAI,EAAGm3B,EAAMt7B,KAAK+oG,QAAQ1kG,OAAYi3B,EAAJn3B,EAASA,IAEhDwjC,EAAOrjC,KAAKtE,KAAK+oG,QAAQ5kG,GAAGwI,WAMhC,KAAK,GAAIxI,GAAI,EAAGm3B,EAAMyzD,EAAO1qF,OAAYi3B,EAAJn3B,EAASA,IAGtCkkG,EAEA1gE,EAAOrjC,KAAKyqF,EAAO5qF,IAIfnE,KAAKmmF,eAAe4I,EAAO5qF,KAE3BwjC,EAAOrjC,KAAKtE,KAAKmmF,eAAe4I,EAAO5qF,IAAIwI,MAM3D,OAAOg7B,KAMfvF,EAAOsqD,UAAU7oF,UAAUsB,YAAci9B,EAAOsqD,UAOhDvjF,OAAOC,eAAeg5B,EAAOsqD,UAAU7oF,UAAW,SAE9CwF,IAAK,WACD,MAAOrJ,MAAK+oG,QAAQ1kG,UAiB5B+9B,EAAOyoE,iBAeHC,YAAa,SAAU34D,EAAMxvB,EAAKooF,EAAYC,EAAaC,EAAU3hD,EAAQ4hD,GAGzE,GAAIC,GAAMh5D,EAAK0B,MAAM5S,SAASte,EAE9B,IAAW,MAAPwoF,EAEA,MAAO,KAGX,IAAIhkG,GAAQgkG,EAAIhkG,MACZC,EAAS+jG,EAAI/jG,MAEC,IAAd2jG,IAEAA,EAAa7oG,KAAKmoC,OAAOljC,EAAQjF,KAAK23B,IAAI,GAAIkxE,KAG/B,GAAfC,IAEAA,EAAc9oG,KAAKmoC,OAAOjjC,EAASlF,KAAK23B,IAAI,GAAImxE,IAGpD,IAAII,GAAMlpG,KAAKmoC,OAAOljC,EAAQmiD,IAAWyhD,EAAaG,IAClDG,EAASnpG,KAAKmoC,OAAOjjC,EAASkiD,IAAW0hD,EAAcE,IACvD1tE,EAAQ4tE,EAAMC,CAQlB,IANiB,KAAbJ,IAEAztE,EAAQytE,GAIE,IAAV9jG,GAA0B,IAAXC,GAAwB2jG,EAAR5jG,GAA+B6jG,EAAT5jG,GAAkC,IAAVo2B,EAG7E,MADAj6B,SAAQo0C,KAAK,wCAA0Ch1B,EAAM,uEACtD,IAQX,KAAK,GAJD/L,GAAO,GAAIwrB,GAAOsqD,UAClBnoF,EAAI+kD,EACJ9kD,EAAI8kD,EAECnlD,EAAI,EAAOq5B,EAAJr5B,EAAWA,IAC3B,CACI,GAAIyjD,GAAOzV,EAAKmC,IAAIsT,MAGpBhxC,GAAKi2E,SAAS,GAAIzqD,GAAOo7C,MAAMr5E,EAAGI,EAAGC,EAAGumG,EAAYC,EAAa,GAAIpjD,IAErE3nD,KAAK+R,aAAa41C,GAAQ,GAAI3nD,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,IAC7Dpe,EAAGA,EACHC,EAAGA,EACH2C,MAAO4jG,EACP3jG,OAAQ4jG,IAGZzmG,GAAKwmG,EAAaG,EAEd3mG,EAAIwmG,EAAa5jG,IAEjB5C,EAAI+kD,EACJ9kD,GAAKwmG,EAAcE,GAI3B,MAAOt0F,IAaX00F,SAAU,SAAUn5D,EAAMo5D,EAAMC,GAG5B,IAAKD,EAAa,OAId,MAFAhoG,SAAQo0C,KAAK,iGACbp0C,SAAQC,IAAI+nG,EAWhB,KAAK,GAFDE,GAJA70F,EAAO,GAAIwrB,GAAOsqD,UAGlBqC,EAASwc,EAAa,OAGjBpnG,EAAI,EAAGA,EAAI4qF,EAAO1qF,OAAQF,IACnC,CACI,GAAIyjD,GAAOzV,EAAKmC,IAAIsT,MAEpB6jD,GAAW70F,EAAKi2E,SAAS,GAAIzqD,GAAOo7C,MAChCr5E,EACA4qF,EAAO5qF,GAAG4L,MAAMxL,EAChBwqF,EAAO5qF,GAAG4L,MAAMvL,EAChBuqF,EAAO5qF,GAAG4L,MAAMsV,EAChB0pE,EAAO5qF,GAAG4L,MAAM0qB,EAChBs0D,EAAO5qF,GAAGunG,SACV9jD,IAGJ3nD,KAAK+R,aAAa41C,GAAQ,GAAI3nD,MAAKmS,QAAQnS,KAAK4+B,iBAAiB2sE,IAC7DjnG,EAAGwqF,EAAO5qF,GAAG4L,MAAMxL,EACnBC,EAAGuqF,EAAO5qF,GAAG4L,MAAMvL,EACnB2C,MAAO4nF,EAAO5qF,GAAG4L,MAAMsV,EACvBje,OAAQ2nF,EAAO5qF,GAAG4L,MAAM0qB,IAGxBs0D,EAAO5qF,GAAGsgF,SAEVgnB,EAAStB,QACLpb,EAAO5qF,GAAGsgF,QACVsK,EAAO5qF,GAAGwnG,WAAWtmF,EACrB0pE,EAAO5qF,GAAGwnG,WAAWlxE,EACrBs0D,EAAO5qF,GAAGynG,iBAAiBrnG,EAC3BwqF,EAAO5qF,GAAGynG,iBAAiBpnG,EAC3BuqF,EAAO5qF,GAAGynG,iBAAiBvmF,EAC3B0pE,EAAO5qF,GAAGynG,iBAAiBnxE,GAKvC,MAAO7jB,IAaXi1F,aAAc,SAAU15D,EAAMo5D,EAAMC,GAGhC,IAAKD,EAAa,OAId,MAFAhoG,SAAQo0C,KAAK,sGACbp0C,SAAQC,IAAI+nG,EAKhB;GAIIE,GAJA70F,EAAO,GAAIwrB,GAAOsqD,UAGlBqC,EAASwc,EAAa,OAEtBpnG,EAAI,CAER,KAAK,GAAIwe,KAAOosE,GAChB,CACI,GAAInnC,GAAOzV,EAAKmC,IAAIsT,MAEpB6jD,GAAW70F,EAAKi2E,SAAS,GAAIzqD,GAAOo7C,MAChCr5E,EACA4qF,EAAOpsE,GAAK5S,MAAMxL,EAClBwqF,EAAOpsE,GAAK5S,MAAMvL,EAClBuqF,EAAOpsE,GAAK5S,MAAMsV,EAClB0pE,EAAOpsE,GAAK5S,MAAM0qB,EAClB9X,EACAilC,IAGJ3nD,KAAK+R,aAAa41C,GAAQ,GAAI3nD,MAAKmS,QAAQnS,KAAK4+B,iBAAiB2sE,IAC7DjnG,EAAGwqF,EAAOpsE,GAAK5S,MAAMxL,EACrBC,EAAGuqF,EAAOpsE,GAAK5S,MAAMvL,EACrB2C,MAAO4nF,EAAOpsE,GAAK5S,MAAMsV,EACzBje,OAAQ2nF,EAAOpsE,GAAK5S,MAAM0qB,IAG1Bs0D,EAAOpsE,GAAK8hE,SAEZgnB,EAAStB,QACLpb,EAAOpsE,GAAK8hE,QACZsK,EAAOpsE,GAAKgpF,WAAWtmF,EACvB0pE,EAAOpsE,GAAKgpF,WAAWlxE,EACvBs0D,EAAOpsE,GAAKipF,iBAAiBrnG,EAC7BwqF,EAAOpsE,GAAKipF,iBAAiBpnG,EAC7BuqF,EAAOpsE,GAAKipF,iBAAiBvmF,EAC7B0pE,EAAOpsE,GAAKipF,iBAAiBnxE,GAIrCt2B,IAGJ,MAAOyS,IAaXk1F,QAAS,SAAU35D,EAAM45D,EAAKP,GAG1B,IAAKO,EAAIC,qBAAqB,gBAG1B,WADAzoG,SAAQo0C,KAAK,8FAqBjB,KAAK,GAdD8zD,GAEA7jD,EACAvqC,EACAtN,EACAxL,EACAC,EACA2C,EACAC,EACA6kG,EACAC,EACAnB,EACAC,EAdAp0F,EAAO,GAAIwrB,GAAOsqD,UAClBqC,EAASgd,EAAIC,qBAAqB,cAe7B7nG,EAAI,EAAGA,EAAI4qF,EAAO1qF,OAAQF,IAE/ByjD,EAAOzV,EAAKmC,IAAIsT,OAEhB73C,EAAQg/E,EAAO5qF,GAAG2d,WAElBzE,EAAOtN,EAAMsN,KAAK9T,MAClBhF,EAAIqT,SAAS7H,EAAMxL,EAAEgF,MAAO,IAC5B/E,EAAIoT,SAAS7H,EAAMvL,EAAE+E,MAAO,IAC5BpC,EAAQyQ,SAAS7H,EAAM5I,MAAMoC,MAAO,IACpCnC,EAASwQ,SAAS7H,EAAM3I,OAAOmC,MAAO,IAEtC0iG,EAAS,KACTC,EAAS,KAELn8F,EAAMk8F,SAENA,EAAS/pG,KAAKirB,IAAIvV,SAAS7H,EAAMk8F,OAAO1iG,MAAO,KAC/C2iG,EAAShqG,KAAKirB,IAAIvV,SAAS7H,EAAMm8F,OAAO3iG,MAAO,KAC/CwhG,EAAanzF,SAAS7H,EAAMg7F,WAAWxhG,MAAO,IAC9CyhG,EAAcpzF,SAAS7H,EAAMi7F,YAAYzhG,MAAO,KAGpDkiG,EAAW70F,EAAKi2E,SAAS,GAAIzqD,GAAOo7C,MAAMr5E,EAAGI,EAAGC,EAAG2C,EAAOC,EAAQiW,EAAMuqC,IAExE3nD,KAAK+R,aAAa41C,GAAQ,GAAI3nD,MAAKmS,QAAQnS,KAAK4+B,iBAAiB2sE,IAC7DjnG,EAAGA,EACHC,EAAGA,EACH2C,MAAOA,EACPC,OAAQA,KAGG,OAAX6kG,GAA8B,OAAXC,IAEnBT,EAAStB,SAAQ,EAAMhjG,EAAOC,EAAQ6kG,EAAQC,EAAQnB,EAAYC,EAI1E,OAAOp0F,KAoBfwrB,EAAOwyB,MAAQ,SAAUziB,GAKrBnyC,KAAKmyC,KAAOA,EAKZnyC,KAAKmsG,gBAAiB,EAMtBnsG,KAAKosG,aAMLpsG,KAAKqsG,WAMLrsG,KAAKssG,aAMLtsG,KAAKusG,WAMLvsG,KAAK+mF,SAML/mF,KAAKwsG,SAMLxsG,KAAKysG,QAMLzsG,KAAK0sG,YAML1sG,KAAK2sG,aAML3sG,KAAK4sG,WAML5sG,KAAK6sG,gBAML7sG,KAAK8sG,eAML9sG,KAAK+sG,WAML/sG,KAAKgtG,aAAe,GAAI7zE,OAMxBn5B,KAAKitG,SAAW,KAEhBjtG,KAAKktG,kBACLltG,KAAKmtG,kBAKLntG,KAAKotG,cAAgB,GAAIhrE,GAAOuW,OAKhC34C,KAAKqtG,aAELrtG,KAAKqtG,UAAUjrE,EAAOwyB,MAAMryB,QAAUviC,KAAKosG,UAC3CpsG,KAAKqtG,UAAUjrE,EAAOwyB,MAAM3xB,OAASjjC,KAAKqsG,QAC1CrsG,KAAKqtG,UAAUjrE,EAAOwyB,MAAM04C,SAAWttG,KAAKssG,UAC5CtsG,KAAKqtG,UAAUjrE,EAAOwyB,MAAM24C,OAASvtG,KAAKusG,QAC1CvsG,KAAKqtG,UAAUjrE,EAAOwyB,MAAMzxB,MAAQnjC,KAAK+mF,MACzC/mF,KAAKqtG,UAAUjrE,EAAOwyB,MAAM44C,SAAWxtG,KAAK0sG,SAC5C1sG,KAAKqtG,UAAUjrE,EAAOwyB,MAAMpxB,SAAWxjC,KAAK2sG,UAC5C3sG,KAAKqtG,UAAUjrE,EAAOwyB,MAAM64C,QAAUztG,KAAK4sG,QAC3C5sG,KAAKqtG,UAAUjrE,EAAOwyB,MAAMhxB,YAAc5jC,KAAK6sG,aAC/C7sG,KAAKqtG,UAAUjrE,EAAOwyB,MAAM84C,YAAc1tG,KAAK8sG,YAC/C9sG,KAAKqtG,UAAUjrE,EAAOwyB,MAAM+4C,MAAQ3tG,KAAKwsG,MACzCxsG,KAAKqtG,UAAUjrE,EAAOwyB,MAAMg5C,KAAO5tG,KAAKysG,MAQ5CrqE,EAAOwyB,MAAMryB,OAAS,EAMtBH,EAAOwyB,MAAM3xB,MAAQ,EAMrBb,EAAOwyB,MAAM04C,QAAU,EAMvBlrE,EAAOwyB,MAAM24C,MAAQ,EAMrBnrE,EAAOwyB,MAAMzxB,KAAO,EAMpBf,EAAOwyB,MAAM44C,QAAU,EAMvBprE,EAAOwyB,MAAMpxB,QAAU,EAMvBpB,EAAOwyB,MAAM64C,OAAS,EAMtBrrE,EAAOwyB,MAAMhxB,WAAa,EAM1BxB,EAAOwyB,MAAM84C,WAAa,GAM1BtrE,EAAOwyB,MAAM+4C,KAAO,GAMpBvrE,EAAOwyB,MAAMg5C,IAAM,GAEnBxrE,EAAOwyB,MAAM/wD,WAUTgqG,UAAW,SAAUlrF,EAAKtP,EAAQvC,GAE9B9Q,KAAKosG,UAAUzpF,IAAStP,OAAQA,EAAQvC,QAASA,IAWrDg9F,UAAW,SAAUnrF,EAAKorF,GAEtB/tG,KAAK4sG,QAAQjqF,GAAOorF,GAaxB9wB,cAAe,SAAUt6D,EAAKo6D,EAAYiJ,GAYtC,MAVAjJ,GAAWp6D,IAAMA,EAEQ,mBAAdqjE,KAEPA,EAAY,GAAI5jD,GAAOsqD,UACvB1G,EAAU6G,SAAS9P,EAAWQ,eAGlCv9E,KAAK6sG,aAAalqF,IAAS/L,KAAMmmE,EAAYiJ,UAAWA,GAEjDjJ,GAWXD,iBAAkB,SAAUn6D,EAAK9W,GAE7B,GAAIkE,GAAQ,GAAIqyB,GAAOo7C,MAAM,EAAG,EAAG,EAAG3xE,EAAQ1E,MAAO0E,EAAQzE,OAAQ,GAAI,GAEzEpH,MAAKssG,UAAU3pF,IAAS9W,QAASA,EAASkE,MAAOA,IAiBrDi+F,eAAgB,SAAUrrF,EAAKo9E,EAAKnpF,EAAMm0F,EAAYC,EAAaC,EAAU3hD,EAAQ4hD,GAEjFlrG,KAAKqsG,QAAQ1pF,IAASo9E,IAAKA,EAAKnpF,KAAMA,EAAMm0F,WAAYA,EAAYC,YAAaA,EAAa1hD,OAAQA,EAAQ4hD,QAASA,GAEvHjrG,KAAK4+B,iBAAiBlc,GAAO,GAAI1iB,MAAK8+B,YAAYnoB,GAClD3W,KAAK+R,aAAa2Q,GAAO,GAAI1iB,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,IAEhE3iB,KAAKqsG,QAAQ1pF,GAAKqjE,UAAY5jD,EAAOyoE,gBAAgBC,YAAY9qG,KAAKmyC,KAAMxvB,EAAKooF,EAAYC,EAAaC,EAAU3hD,EAAQ4hD,GAE5HlrG,KAAKiuG,YAAYlO,EAAK//F,KAAKqsG,QAAQ1pF,KAavCurF,WAAY,SAAUvrF,EAAKo9E,EAAKoO,EAASjqF,GAErClkB,KAAK2sG,UAAUhqF,IAASo9E,IAAKA,EAAKnpF,KAAMu3F,EAASjqF,OAAQA,GAEzDlkB,KAAKiuG,YAAYlO,EAAK//F,KAAK2sG,UAAUhqF,KAczCyrF,gBAAiB,SAAUzrF,EAAKo9E,EAAKnpF,EAAMy3F,EAAWnqF,GAElDlkB,KAAKqsG,QAAQ1pF,IAASo9E,IAAKA,EAAKnpF,KAAMA,GAEtC3W,KAAK4+B,iBAAiBlc,GAAO,GAAI1iB,MAAK8+B,YAAYnoB,GAClD3W,KAAK+R,aAAa2Q,GAAO,GAAI1iB,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,IAE5DuB,GAAUke,EAAOyyB,OAAOy5C,yBAExBtuG,KAAKqsG,QAAQ1pF,GAAKqjE,UAAY5jD,EAAOyoE,gBAAgBS,SAAStrG,KAAKmyC,KAAMk8D,EAAW1rF,GAE/EuB,GAAUke,EAAOyyB,OAAO05C,wBAE7BvuG,KAAKqsG,QAAQ1pF,GAAKqjE,UAAY5jD,EAAOyoE,gBAAgBgB,aAAa7rG,KAAKmyC,KAAMk8D,EAAW1rF,GAEnFuB,GAAUke,EAAOyyB,OAAO25C,6BAE7BxuG,KAAKqsG,QAAQ1pF,GAAKqjE,UAAY5jD,EAAOyoE,gBAAgBiB,QAAQ9rG,KAAKmyC,KAAMk8D,EAAW1rF,IAGvF3iB,KAAKiuG,YAAYlO,EAAK//F,KAAKqsG,QAAQ1pF,KAevC8rF,cAAe,SAAU9rF,EAAKo9E,EAAKnpF,EAAM83F,EAASryB,EAAUC,GAExDt8E,KAAKqsG,QAAQ1pF,IAASo9E,IAAKA,EAAKnpF,KAAMA,GAEtC3W,KAAK4+B,iBAAiBlc,GAAO,GAAI1iB,MAAK8+B,YAAYnoB,GAClD3W,KAAK+R,aAAa2Q,GAAO,GAAI1iB,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,IAEhEyf,EAAOusE,aAAaC,WAAW5uG,KAAKmyC,KAAMu8D,EAAS/rF,EAAK05D,EAAUC,GAElEt8E,KAAK8sG,YAAYnqF,GAAO1iB,KAAKsX,WAAWM,MAAM8K,GAE9C3iB,KAAKiuG,YAAYlO,EAAK//F,KAAK8sG,YAAYnqF,KAa3CksF,eAAgB,SAAUlsF,EAAKo9E,EAAKuL,EAAUpnF,GAE1ClkB,KAAK0sG,SAAS/pF,IAASo9E,IAAKA,EAAKnpF,KAAM00F,EAAUpnF,OAAQA,GAEzDlkB,KAAKiuG,YAAYlO,EAAK//F,KAAK0sG,SAAS/pF,KAUxCuqF,gBAAiB,WAEb,GAAI/B,GAAM,GAAIhyE,MACdgyE,GAAI5qF,IAAM,yKAEVvgB,KAAKqsG,QAAmB,WAAMtM,IAAK,KAAMnpF,KAAMu0F,GAC/CnrG,KAAKqsG,QAAmB,UAAEt8F,MAAQ,GAAIqyB,GAAOo7C,MAAM,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,IACxEx9E,KAAKqsG,QAAmB,UAAErmB,UAAY,GAAI5jD,GAAOsqD,UACjD1sF,KAAKqsG,QAAmB,UAAErmB,UAAU6G,SAAS,GAAIzqD,GAAOo7C,MAAM,EAAG,EAAG,EAAG,GAAI,GAAI,KAAMx9E,KAAKmyC,KAAKmC,IAAIsT,SAEnG3nD,KAAK4+B,iBAA4B,UAAI,GAAI5+B,MAAK8+B,YAAYosE,GAC1DlrG,KAAK+R,aAAwB,UAAI,GAAI/R,MAAKmS,QAAQnS,KAAK4+B,iBAA4B,YAUvFsuE,gBAAiB,WAEb,GAAIhC,GAAM,GAAIhyE,MACdgyE,GAAI5qF,IAAM,6WAEVvgB,KAAKqsG,QAAmB,WAAMtM,IAAK,KAAMnpF,KAAMu0F,GAC/CnrG,KAAKqsG,QAAmB,UAAEt8F,MAAQ,GAAIqyB,GAAOo7C,MAAM,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,IACxEx9E,KAAKqsG,QAAmB,UAAErmB,UAAY,GAAI5jD,GAAOsqD,UACjD1sF,KAAKqsG,QAAmB,UAAErmB,UAAU6G,SAAS,GAAIzqD,GAAOo7C,MAAM,EAAG,EAAG,EAAG,GAAI,GAAI,KAAMx9E,KAAKmyC,KAAKmC,IAAIsT,SAEnG3nD,KAAK4+B,iBAA4B,UAAI,GAAI5+B,MAAK8+B,YAAYosE,GAC1DlrG,KAAK+R,aAAwB,UAAI,GAAI/R,MAAKmS,QAAQnS,KAAK4+B,iBAA4B,YAYvFiwE,QAAS,SAAUnsF,EAAKo9E,EAAKnpF,GAEzB5W,KAAK+mF,MAAMpkE,IAASo9E,IAAKA,EAAKnpF,KAAMA,GAEpC5W,KAAKiuG,YAAYlO,EAAK//F,KAAK+mF,MAAMpkE,KAYrCosF,QAAS,SAAUpsF,EAAKo9E,EAAKnpF,GAEzB5W,KAAKwsG,MAAM7pF,IAASo9E,IAAKA,EAAKnpF,KAAMA,GAEpC5W,KAAKiuG,YAAYlO,EAAK//F,KAAKwsG,MAAM7pF,KAYrCqsF,OAAQ,SAAUrsF,EAAKo9E,EAAKnpF,GAExB5W,KAAKysG,KAAK9pF,IAASo9E,IAAKA,EAAKnpF,KAAMA,GAEnC5W,KAAKiuG,YAAYlO,EAAK//F,KAAKysG,KAAK9pF,KAYpCssF,SAAU,SAAUtsF,EAAKo9E,EAAKnpF,GAE1B5W,KAAKqsG,QAAQ1pF,IAASo9E,IAAKA,EAAKnpF,KAAMA,GAEtC5W,KAAKqsG,QAAQ1pF,GAAK5S,MAAQ,GAAIqyB,GAAOo7C,MAAM,EAAG,EAAG,EAAG5mE,EAAKzP,MAAOyP,EAAKxP,OAAQub,EAAK3iB,KAAKmyC,KAAKmC,IAAIsT,QAChG5nD,KAAKqsG,QAAQ1pF,GAAKqjE,UAAY,GAAI5jD,GAAOsqD,UACzC1sF,KAAKqsG,QAAQ1pF,GAAKqjE,UAAU6G,SAAS,GAAIzqD,GAAOo7C,MAAM,EAAG,EAAG,EAAG5mE,EAAKzP,MAAOyP,EAAKxP,OAAQ24F,EAAK//F,KAAKmyC,KAAKmC,IAAIsT,SAE3G3nD,KAAK4+B,iBAAiBlc,GAAO,GAAI1iB,MAAK8+B,YAAYnoB,GAClD3W,KAAK+R,aAAa2Q,GAAO,GAAI1iB,MAAKmS,QAAQnS,KAAK4+B,iBAAiBlc,IAEhE3iB,KAAKiuG,YAAYlO,EAAK//F,KAAKqsG,QAAQ1pF,KAcvCusF,SAAU,SAAUvsF,EAAKo9E,EAAKnpF,EAAM2+C,EAAU45C,GAE1C55C,EAAWA,IAAY,EACvB45C,EAAWA,IAAY,CAEvB,IAAIC,IAAU,CAEVD,KAEAC,GAAU,GAGdpvG,KAAKusG,QAAQ5pF,IAASo9E,IAAKA,EAAKnpF,KAAMA,EAAMy4F,YAAY,EAAOD,QAASA,EAAS75C,SAAUA,EAAU45C,SAAUA,EAAU1qC,OAAQzkE,KAAKmyC,KAAK8B,MAAMq7D,aAEjJtvG,KAAKiuG,YAAYlO,EAAK//F,KAAKusG,QAAQ5pF,KAUvC4sF,YAAa,SAAU5sF,GAEnB,GAAIk7B,GAAQ79C,IAERA,MAAKusG,QAAQ5pF,KAEb3iB,KAAKusG,QAAQ5pF,GAAK/L,KAAK2J,IAAMvgB,KAAKusG,QAAQ5pF,GAAKo9E,IAE/C//F,KAAKusG,QAAQ5pF,GAAK/L,KAAKgG,iBAAiB,iBAAkB,WACtD,MAAOihC,GAAM2xD,oBAAoB7sF,KAClC,GAEH3iB,KAAKusG,QAAQ5pF,GAAK/L,KAAKm9B,SAU/By7D,oBAAqB,SAAU7sF,GAEvB3iB,KAAKusG,QAAQ5pF,KAEb3iB,KAAKusG,QAAQ5pF,GAAK8hD,QAAS,EAC3BzkE,KAAKotG,cAAct0D,SAASn2B,KAWpC8sF,YAAa,SAAU9sF,EAAKigC,EAAUr5C,GAE9BvJ,KAAKusG,QAAQ5pF,KAEb3iB,KAAKusG,QAAQ5pF,GAAKigC,GAAYr5C,IAYtCmmG,aAAc,SAAU/sF,EAAK/L,GAEzB5W,KAAKusG,QAAQ5pF,GAAK/L,KAAOA,EACzB5W,KAAKusG,QAAQ5pF,GAAKysF,SAAU,EAC5BpvG,KAAKusG,QAAQ5pF,GAAK0sF,YAAa,GAWnCluE,UAAW,SAAUxe,GAEjB,MAAI3iB,MAAKosG,UAAUzpF,GAER3iB,KAAKosG,UAAUzpF,GAAKtP,QAI3B9P,QAAQo0C,KAAK,yCAA2Ch1B,EAAM,KACvD,OAYfgtF,cAAe,SAAUhtF,GAErB,MAAI3iB,MAAK6sG,aAAalqF,GAEX3iB,KAAK6sG,aAAalqF,GAAK/L,MAI9BrT,QAAQo0C,KAAK,6CAA+Ch1B,EAAM,KAC3D,OAYfitF,cAAe,SAAUjtF,GAErB,MAAI3iB,MAAK8sG,YAAYnqF,GAEV3iB,KAAK8sG,YAAYnqF,IAIxBpf,QAAQo0C,KAAK,6CAA+Ch1B,EAAM,KAC3D,OAcfktF,eAAgB,SAAUltF,EAAKwvC,EAAQ29C,GAEnC,GAAsB,mBAAX39C,IAAqC,OAAXA,EACrC,CAEI,GAAInyD,KAAK0sG,SAAS/pF,GAEd,MAAO3iB,MAAK0sG,SAAS/pF,GAAK/L,IAI1BrT,SAAQo0C,KAAK,8CAAgDh1B,EAAM,SAKvE,IAAI3iB,KAAK0sG,SAAS/pF,IAAQ3iB,KAAK0sG,SAAS/pF,GAAK/L,KAAKu7C,GAClD,CACI,GAAI49C,GAAW/vG,KAAK0sG,SAAS/pF,GAAK/L,KAAKu7C,EAGvC,KAAI49C,IAAYD,EAmBZ,MAAOC,EAjBP,KAAK,GAAIC,KAAWD,GAMhB,GAHAC,EAAUD,EAASC,GAGfA,EAAQF,aAAeA,EAEvB,MAAOE,EAKfzsG,SAAQo0C,KAAK,kEAAoEm4D,EAAa,OAASntF,EAAM,SASjHpf,SAAQo0C,KAAK,qDAAuDh1B,EAAM,MAAQwvC,EAAS,IAInG,OAAO,OAYX89C,SAAU,SAAUhtG,EAAM0f,GAEtB,MAAI3iB,MAAKqtG,UAAUpqG,GAAM0f,IAEd,GAGJ,GAWXutF,eAAgB,SAAUvtF,GAEtB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAMryB,OAAQ5f,IAW9C6hE,cAAe,SAAU7hE,GAErB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAM3xB,MAAOtgB,IAW7CwtF,gBAAiB,SAAUxtF,GAEvB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAM04C,QAAS3qF,IAW/CytF,cAAe,SAAUztF,GAErB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAM24C,MAAO5qF,IAW7C0tF,aAAc,SAAU1tF,GAEpB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAMzxB,KAAMxgB,IAW5C2tF,gBAAiB,SAAU3tF,GAEvB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAM44C,QAAS7qF,IAW/C4tF,gBAAiB,SAAU5tF,GAEvB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAMpxB,QAAS7gB,IAW/C6tF,eAAgB,SAAU7tF,GAEtB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAM64C,OAAQ9qF,IAW9C8tF,mBAAoB,SAAU9tF,GAE1B,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAMhxB,WAAYjhB,IAWlD+tF,mBAAoB,SAAU/tF,GAE1B,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAM84C,WAAY/qF,IAWlDguF,aAAc,SAAUhuF,GAEpB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAM+4C,KAAMhrF,IAW5CiuF,YAAa,SAAUjuF,GAEnB,MAAO3iB,MAAKiwG,SAAS7tE,EAAOwyB,MAAMg5C,IAAKjrF,IAc3CkuF,SAAU,SAAU9Q,GAEhB,MAAI//F,MAAK+sG,QAAQ/sG,KAAKiuG,YAAYlO,KAEvB,GAGJ,GAWX9+D,SAAU,SAAUte,GAEhB,MAAI3iB,MAAKqsG,QAAQ1pF,GAEN3iB,KAAKqsG,QAAQ1pF,GAAK/L,MAIzBrT,QAAQo0C,KAAK,wCAA0Ch1B,EAAM,KACtD,OAYfmuF,eAAgB,SAAUnuF,GAEtB,MAAI3iB,MAAK2sG,UAAUhqF,GAER3iB,KAAK2sG,UAAUhqF,IAItBpf,QAAQo0C,KAAK,8CAAgDh1B,EAAM,KAC5D,OAaf2hE,aAAc,SAAU3hE,EAAKouF,GAIzB,MAFmB,mBAARA,KAAuBA,EAAM3uE,EAAOwyB,MAAM3xB,OAEjDjjC,KAAKqtG,UAAU0D,GAAKpuF,GAEb3iB,KAAKqtG,UAAU0D,GAAKpuF,GAAKqjE,UAG7B,MAUX8G,gBAAiB,SAAUnqE,EAAKqjE,GAExBhmF,KAAKqsG,QAAQ1pF,KAEb3iB,KAAKqsG,QAAQ1pF,GAAKqjE,UAAYA,IAYtCgrB,gBAAiB,SAAUruF,EAAK5S,GAE5B,MAAI/P,MAAKqsG,QAAQ1pF,GAEN3iB,KAAKqsG,QAAQ1pF,GAAKqjE,UAAUC,SAASl2E,GAGzC,MAUXo2E,eAAgB,SAAUxjE,EAAK5S,GAE3B,MAAI/P,MAAKqsG,QAAQ1pF,GAEN3iB,KAAKqsG,QAAQ1pF,GAAKqjE,UAAUG,eAAep2E,GAG/C,MAUXk2E,SAAU,SAAUtjE,GAEhB,MAAI3iB,MAAKqsG,QAAQ1pF,GAEN3iB,KAAKqsG,QAAQ1pF,GAAK5S,MAGtB,MAUXkhG,gBAAiB,SAAUtuF,GAEvB,MAAI3iB,MAAKssG,UAAU3pF,GAER3iB,KAAKssG,UAAU3pF,GAAK5S,MAGxB,MAUXmhG,iBAAkB,SAAUvuF,GAExB,MAAI3iB,MAAKssG,UAAU3pF,GAER3iB,KAAKssG,UAAU3pF,IAItBpf,QAAQo0C,KAAK,0CAA4Ch1B,EAAM,KACxD,OAefwuF,WAAY,SAAUxuF,GAElB,MAAI3iB,MAAKssG,UAAU3pF,GAER3iB,KAAKssG,UAAU3pF,OAItBpf,SAAQo0C,KAAK,0CAA4Ch1B,EAAM,MAYvEyuF,SAAU,SAAUzuF,GAEhB,MAAI3iB,MAAKusG,QAAQ5pF,GAEN3iB,KAAKusG,QAAQ5pF,IAIpBpf,QAAQo0C,KAAK,wCAA0Ch1B,EAAM,KACtD,OAYf0uF,aAAc,SAAU1uF,GAEpB,MAAI3iB,MAAKusG,QAAQ5pF,GAEN3iB,KAAKusG,QAAQ5pF,GAAK/L,MAIzBrT,QAAQo0C,KAAK,4CAA8Ch1B,EAAM,KAC1D,OAYf2uF,eAAgB,SAAU3uF,GAEtB,MAAI3iB,MAAKusG,QAAQ5pF,GAEN3iB,KAAKusG,QAAQ5pF,GAAKysF,QAF7B,QAcJmC,aAAc,SAAU5uF,GAEpB,MAAQ3iB,MAAKusG,QAAQ5pF,IAAQ3iB,KAAKusG,QAAQ5pF,GAAKysF,SAAWpvG,KAAKmyC,KAAK8B,MAAMq7D,eAAgB,GAW9FkC,cAAe,SAAU7uF,GAErB,MAAI3iB,MAAKqsG,QAAQ1pF,GAEN3iB,KAAKqsG,QAAQ1pF,GAAKqjE,UAAUxoD,MAGhC,GAWXi0E,QAAS,SAAU9uF,GAEf,MAAI3iB,MAAK+mF,MAAMpkE,GAEJ3iB,KAAK+mF,MAAMpkE,GAAK/L,MAIvBrT,QAAQo0C,KAAK,uCAAyCh1B,EAAM,KACrD,OAYf+uF,QAAS,SAAU/uF,GAEf,MAAI3iB,MAAKwsG,MAAM7pF,GAEJ3iB,KAAKwsG,MAAM7pF,GAAK/L,MAIvBrT,QAAQo0C,KAAK,uCAAyCh1B,EAAM,KACrD,OAYfgvF,OAAQ,SAAUhvF,GAEd,MAAI3iB,MAAKysG,KAAK9pF,GAEH3iB,KAAKysG,KAAK9pF,GAAK/L,MAItBrT,QAAQo0C,KAAK,sCAAwCh1B,EAAM,KACpD,OAYfivF,UAAW,SAAUjvF,GAEjB,MAAI3iB,MAAK4sG,QAAQjqF,GAEN3iB,KAAK4sG,QAAQjqF,IAIpBpf,QAAQo0C,KAAK,yCAA2Ch1B,EAAM,KACvD,OAcfkvF,OAAQ,SAAU9R,GAEd,GAAIA,GAAM//F,KAAKiuG,YAAYlO,EAE3B,OAAIA,GAEO//F,KAAK+sG,QAAQhN,IAIpBx8F,QAAQo0C,KAAK,sCAAwCooD,EAAO,uCACrD,OAgBf+R,OAAQ,SAAU/R,GAEd,MAAO//F,MAAK6xG,OAAO9R,IAWvBgS,QAAS,SAAU9uG,GAEf,GAAI2C,GAAQ,IAEZ,QAAQ3C,GAEJ,IAAKm/B,GAAOwyB,MAAMryB,OACd38B,EAAQ5F,KAAKosG,SACb,MAEJ,KAAKhqE,GAAOwyB,MAAM3xB,MACdr9B,EAAQ5F,KAAKqsG,OACb,MAEJ,KAAKjqE,GAAOwyB,MAAM04C,QACd1nG,EAAQ5F,KAAKssG,SACb,MAEJ,KAAKlqE,GAAOwyB,MAAM24C,MACd3nG,EAAQ5F,KAAKusG,OACb,MAEJ,KAAKnqE,GAAOwyB,MAAMzxB,KACdv9B,EAAQ5F,KAAK+mF,KACb,MAEJ,KAAK3kD,GAAOwyB,MAAM44C,QACd5nG,EAAQ5F,KAAK0sG,QACb,MAEJ,KAAKtqE,GAAOwyB,MAAMpxB,QACd59B,EAAQ5F,KAAK2sG,SACb,MAEJ,KAAKvqE,GAAOwyB,MAAM64C,OACd7nG,EAAQ5F,KAAK4sG,OACb,MAEJ,KAAKxqE,GAAOwyB,MAAMhxB,WACdh+B,EAAQ5F,KAAK6sG,YACb,MAEJ,KAAKzqE,GAAOwyB,MAAM84C,WACd9nG,EAAQ5F,KAAK8sG,WACb,MAEJ,KAAK1qE,GAAOwyB,MAAM+4C,KACd/nG,EAAQ5F,KAAKwsG,KACb,MAEJ,KAAKpqE,GAAOwyB,MAAMg5C,IACdhoG,EAAQ5F,KAAKysG,KAIrB,GAAK7mG,EAAL,CAKA,GAAI+hC,KAEJ,KAAK,GAAIl+B,KAAQ7D,GAEA,cAAT6D,GAAiC,cAATA,GAExBk+B,EAAOrjC,KAAKmF,EAIpB,OAAOk+B,KAUXqqE,aAAc,SAAUrvF,SACb3iB,MAAKosG,UAAUzpF,IAU1BsvF,YAAa,SAAUtvF,EAAKuvF,GAEM,mBAAnBA,KAAkCA,GAAiB,SAEvDlyG,MAAKqsG,QAAQ1pF,GAEhBuvF,GAEAjyG,KAAK4+B,iBAAiBlc,GAAKzW,WAWnCimG,YAAa,SAAUxvF,SACZ3iB,MAAKusG,QAAQ5pF,IASxByvF,WAAY,SAAUzvF,SACX3iB,MAAK+mF,MAAMpkE,IAStB0vF,WAAY,SAAU1vF,SACX3iB,MAAKwsG,MAAM7pF,IAStB2vF,UAAW,SAAU3vF,SACV3iB,MAAKysG,KAAK9pF,IASrB4vF,cAAe,SAAU5vF,SACd3iB,MAAK0sG,SAAS/pF,IASzB6vF,cAAe,SAAU7vF,SACd3iB,MAAK2sG,UAAUhqF,IAS1B8vF,aAAc,SAAU9vF,SACb3iB,MAAK4sG,QAAQjqF,IASxB+vF,iBAAkB,SAAU/vF,SACjB3iB,MAAK6sG,aAAalqF,IAS7BgwF,iBAAkB,SAAUhwF,SACjB3iB,MAAK8sG,YAAYnqF,IAa5BsrF,YAAa,SAAUlO,EAAKnpF,GAExB,MAAK5W,MAAKmsG,gBAKVnsG,KAAKgtG,aAAazsF,IAAMvgB,KAAKmyC,KAAK4B,KAAK6+D,QAAU7S,EAEjD//F,KAAKitG,SAAWjtG,KAAKgtG,aAAazsF,IAGlCvgB,KAAKgtG,aAAazsF,IAAM,GAGpB3J,IAEA5W,KAAK+sG,QAAQ/sG,KAAKitG,UAAYr2F,GAG3B5W,KAAKitG,UAhBD,MAyBf/gG,QAAS,WAEL,IAAK,GAAIzC,KAAQzJ,MAAKosG,gBAEXpsG,MAAKosG,UAAU3iG,EAG1B,KAAK,GAAIA,KAAQzJ,MAAKqsG,QAEL,cAAT5iG,GAAiC,cAATA,SAEjBzJ,MAAKqsG,QAAQ5iG,EAI5B,KAAK,GAAIA,KAAQzJ,MAAKusG,cAEXvsG,MAAKusG,QAAQ9iG,EAGxB,KAAK,GAAIA,KAAQzJ,MAAK+mF,YAEX/mF,MAAK+mF,MAAMt9E,EAGtB,KAAK,GAAIA,KAAQzJ,MAAKwsG,YAEXxsG,MAAKwsG,MAAM/iG,EAGtB,KAAK,GAAIA,KAAQzJ,MAAKysG,WAEXzsG,MAAKysG,KAAKhjG,EAGrB,KAAK,GAAIA,KAAQzJ,MAAKssG,gBAEXtsG,MAAKssG,UAAU7iG,EAG1B,KAAK,GAAIA,KAAQzJ,MAAK0sG,eAEX1sG,MAAK0sG,SAASjjG,EAGzB,KAAK,GAAIA,KAAQzJ,MAAK2sG,gBAEX3sG,MAAK2sG,UAAUljG,EAG1B,KAAK,GAAIA,KAAQzJ,MAAK4sG,cAEX5sG,MAAK4sG,QAAQnjG,EAGxB,KAAK,GAAIA,KAAQzJ,MAAK6sG,mBAEX7sG,MAAK6sG,aAAapjG,EAG7B,KAAK,GAAIA,KAAQzJ,MAAK8sG,kBAEX9sG,MAAK8sG,YAAYrjG,EAG5BzJ,MAAK+sG,QAAU,KACf/sG,KAAKgtG,aAAe,KACpBhtG,KAAKitG,SAAW,OAMxB7qE,EAAOwyB,MAAM/wD,UAAUsB,YAAci9B,EAAOwyB,MAiB5CxyB,EAAOyyB,OAAS,SAAU1iB,GAKtBnyC,KAAKmyC,KAAOA,EAMZnyC,KAAK6yG,WAAY,EAMjB7yG,KAAK2P,WAAY,EAMjB3P,KAAK8yG,SAAW,EAMhB9yG,KAAK+yG,cAAgB,EASrB/yG,KAAKgzG,cAAgB,KAMrBhzG,KAAK6/B,aAAc,EASnB7/B,KAAK4yG,QAAU,GAKf5yG,KAAKizG,YAAc,GAAI7wE,GAAOuW,OAK9B34C,KAAKkzG,YAAc,GAAI9wE,GAAOuW,OAK9B34C,KAAKmzG,eAAiB,GAAI/wE,GAAOuW,OAKjC34C,KAAKozG,YAAc,GAAIhxE,GAAOuW,OAK9B34C,KAAKu2C,eAAiB,GAAInU,GAAOuW,OAKjC34C,KAAKqzG,eAAiB,GAAIjxE,GAAOuW,OAKjC34C,KAAKszG,mBAAoB,EAMzBtzG,KAAKuzG,aAMLvzG,KAAKwzG,WAAa,EAMlBxzG,KAAKyzG,aAMLzzG,KAAK0zG,WAAa,EAOlB1zG,KAAK2zG,eAAiB,EAMtB3zG,KAAK4zG,KAAO,GAAIl4F,gBAMhB1b,KAAK6zG,MAAQ,MAQjBzxE,EAAOyyB,OAAOy5C,yBAA2B,EAMzClsE,EAAOyyB,OAAO05C,wBAA0B,EAMxCnsE,EAAOyyB,OAAO25C,2BAA6B,EAM3CpsE,EAAOyyB,OAAOi/C,yBAA2B,EAMzC1xE,EAAOyyB,OAAOk/C,oBAAsB,EAEpC3xE,EAAOyyB,OAAOhxD,WAWVmwG,iBAAkB,SAAUlgF,EAAQwR,GAEhCA,EAAYA,GAAa,EAEzBtlC,KAAKgzG,eAAkBl/E,OAAQA,EAAQwR,UAAWA,EAAWn+B,MAAO2sB,EAAO3sB,MAAOC,OAAQ0sB,EAAO1sB,OAAQm0B,KAAM,MAK3Gv7B,KAAKgzG,cAAcz3E,KAHL,IAAd+J,EAG0B,GAAIlD,GAAOl7B,UAAU,EAAG,EAAG,EAAG4sB,EAAO1sB,QAKrC,GAAIg7B,GAAOl7B,UAAU,EAAG,EAAG4sB,EAAO3sB,MAAO,GAGvE2sB,EAAOljB,KAAK5Q,KAAKgzG,cAAcz3E,MAE/BzH,EAAO7rB,SAAU,GAYrB6D,OAAQ,WAEA9L,KAAKgzG,eAAiBhzG,KAAKgzG,cAAc5rG,SAAWpH,KAAKgzG,cAAcl/E,OAAO1sB,SAE9EpH,KAAKgzG,cAAcz3E,KAAKn0B,OAASpH,KAAKgzG,cAAcl/E,OAAO1sB,SAcnE6sG,eAAgB,SAAUhxG,EAAM0f,GAE5B,GAAI3iB,KAAKyzG,UAAUpvG,OAAS,EAExB,IAAK,GAAIF,GAAI,EAAGA,EAAInE,KAAKyzG,UAAUpvG,OAAQF,IAEvC,GAAInE,KAAKyzG,UAAUtvG,GAAGlB,OAASA,GAAQjD,KAAKyzG,UAAUtvG,GAAGwe,MAAQA,EAE7D,OAAO,CAKnB,QAAO,GAYXuxF,cAAe,SAAUjxG,EAAM0f,GAE3B,GAAI3iB,KAAKyzG,UAAUpvG,OAAS,EAExB,IAAK,GAAIF,GAAI,EAAGA,EAAInE,KAAKyzG,UAAUpvG,OAAQF,IAEvC,GAAInE,KAAKyzG,UAAUtvG,GAAGlB,OAASA,GAAQjD,KAAKyzG,UAAUtvG,GAAGwe,MAAQA,EAE7D,MAAOxe,EAKnB,OAAO,IAYXgwG,SAAU,SAAUlxG,EAAM0f,GAEtB,GAAI3iB,KAAKyzG,UAAUpvG,OAAS,EAExB,IAAK,GAAIF,GAAI,EAAGA,EAAInE,KAAKyzG,UAAUpvG,OAAQF,IAEvC,GAAInE,KAAKyzG,UAAUtvG,GAAGlB,OAASA,GAAQjD,KAAKyzG,UAAUtvG,GAAGwe,MAAQA,EAE7D,OAAShW,MAAOxI,EAAGuuF,KAAM1yF,KAAKyzG,UAAUtvG,GAKpD,QAAO,GASXkkB,MAAO,WAEHroB,KAAKgzG,cAAgB,KACrBhzG,KAAK6yG,WAAY,EAEjB7yG,KAAKuzG,UAAUlvG,OAAS,EACxBrE,KAAKwzG,WAAa,EAElBxzG,KAAKyzG,UAAUpvG,OAAS,EACxBrE,KAAK0zG,WAAa,GActBU,cAAe,SAAUnxG,EAAM0f,EAAKo9E,EAAK5pF,GAErC,GAAIk+F,IACApxG,KAAMA,EACN0f,IAAKA,EACLo9E,IAAKA,EACLnpF,KAAM,KACNy+E,OAAO,EACPif,QAAQ,EAGZ,IAA0B,mBAAfn+F,GAEP,IAAK,GAAImuB,KAAQnuB,GAEbk+F,EAAM/vE,GAAQnuB,EAAWmuB,EAI7BtkC,MAAKi0G,eAAehxG,EAAM0f,MAAS,GAEnC3iB,KAAKyzG,UAAUnvG,KAAK+vG,IAe5BE,kBAAmB,SAAUtxG,EAAM0f,EAAKo9E,EAAK5pF,GAEzC,GAAIk+F,IACApxG,KAAMA,EACN0f,IAAKA,EACLo9E,IAAKA,EACLnpF,KAAM,KACNy+E,OAAO,EACPif,QAAQ,EAGZ,IAA0B,mBAAfn+F,GAEP,IAAK,GAAImuB,KAAQnuB,GAEbk+F,EAAM/vE,GAAQnuB,EAAWmuB,EAIjC,IAAI33B,GAAQ3M,KAAKk0G,cAAcjxG,EAAM0f,EAEvB,MAAVhW,EAEA3M,KAAKyzG,UAAUnvG,KAAK+vG,GAIpBr0G,KAAKyzG,UAAU9mG,GAAS0nG,GAehCG,KAAM,SAAU7xF,EAAKo9E,EAAKnpF,EAAMkgC,GAM5B,MAJmB,mBAARipD,KAAuBA,EAAM,MACpB,mBAATnpF,KAAwBA,EAAO,MACX,mBAApBkgC,KAAmCA,EAAkB92C,MAEpD,OAAR+/F,GAAyB,OAATnpF,GAEhBrT,QAAQo0C,KAAK,qEACN33C,OAIP4W,GAEoB,gBAATA,KAEPA,EAAO+2F,KAAK3iE,MAAMp0B,IAI1B5W,KAAKuzG,UAAUjvG,MAAQqe,IAAKA,EAAKo9E,IAAKA,EAAKnpF,KAAMA,EAAM09F,QAAQ,EAAOjf,OAAO,EAAOv+C,gBAAiBA,IAE9F92C,OAaX4/B,MAAO,SAAUjd,EAAKo9E,EAAK0U,GAavB,MAXyB,mBAAdA,KAA6BA,GAAY,GAEhDA,EAEAz0G,KAAKu0G,kBAAkB,QAAS5xF,EAAKo9E,GAIrC//F,KAAKo0G,cAAc,QAASzxF,EAAKo9E,GAG9B//F,MAaXmT,KAAM,SAAUwP,EAAKo9E,EAAK0U,GAatB,MAXyB,mBAAdA,KAA6BA,GAAY,GAEhDA,EAEAz0G,KAAKu0G,kBAAkB,OAAQ5xF,EAAKo9E,GAIpC//F,KAAKo0G,cAAc,OAAQzxF,EAAKo9E,GAG7B//F,MAaXurG,KAAM,SAAU5oF,EAAKo9E,EAAK0U,GAatB,MAXyB,mBAAdA,KAA6BA,GAAY,GAEhDA,EAEAz0G,KAAKu0G,kBAAkB,OAAQ5xF,EAAKo9E,GAIpC//F,KAAKo0G,cAAc,OAAQzxF,EAAKo9E,GAG7B//F,MAaX+rG,IAAK,SAAUppF,EAAKo9E,EAAK0U,GAarB,MAXyB,mBAAdA,KAA6BA,GAAY,GAEhDA,EAEAz0G,KAAKu0G,kBAAkB,MAAO5xF,EAAKo9E,GAInC//F,KAAKo0G,cAAc,MAAOzxF,EAAKo9E,GAG5B//F,MAeX00G,OAAQ,SAAU/xF,EAAKo9E,EAAK1lF,EAAUy8B,GAOlC,MALwB,mBAAbz8B,KAA4BA,GAAW,GAC9CA,KAAa,GAAoC,mBAApBy8B,KAAmCA,EAAkBz8B,GAEtFra,KAAKo0G,cAAc,SAAUzxF,EAAKo9E,GAAO1lF,SAAUA,EAAUy8B,gBAAiBA,IAEvE92C,MAgBX20G,OAAQ,SAAUhyF,EAAKo9E,EAAK1lF,EAAUy8B,GAOlC,MALwB,mBAAbz8B,KAA4BA,GAAW,GAC9CA,KAAa,GAAoC,mBAApBy8B,KAAmCA,EAAkBz8B,GAEtFra,KAAKo0G,cAAc,SAAUzxF,EAAKo9E,GAAO1lF,SAAUA,EAAUy8B,gBAAiBA,IAEvE92C,MAiBX40G,YAAa,SAAUjyF,EAAKo9E,EAAKgL,EAAYC,EAAaC,EAAU3hD,EAAQ4hD,GAQxE,MANwB,mBAAbD,KAA4BA,EAAW,IAC5B,mBAAX3hD,KAA0BA,EAAS,GACvB,mBAAZ4hD,KAA2BA,EAAU,GAEhDlrG,KAAKo0G,cAAc,cAAezxF,EAAKo9E,GAAOgL,WAAYA,EAAYC,YAAaA,EAAaC,SAAUA,EAAU3hD,OAAQA,EAAQ4hD,QAASA,IAEtIlrG,MAaXk7E,MAAO,SAAUv4D,EAAKkyF,EAAMC,GAMxB,MAJ0B,mBAAfA,KAA8BA,GAAa,GAEtD90G,KAAKo0G,cAAc,QAASzxF,EAAKkyF,GAAQjtF,OAAQ,KAAMktF,WAAYA,IAE5D90G,MAcX+0G,YAAa,SAASpyF,EAAKkyF,EAAMG,GAM7B,MAJAh1G,MAAKk7E,MAAMv4D,EAAKkyF,GAEhB70G,KAAKurG,KAAK5oF,EAAM,cAAeqyF,GAExBh1G,MAcXy8E,QAAS,SAAU95D,EAAKo9E,EAAKnpF,EAAMsN,GAM/B,GAJmB,mBAAR67E,KAAuBA,EAAM,MACpB,mBAATnpF,KAAwBA,EAAO,MACpB,mBAAXsN,KAA0BA,EAASke,EAAOw6C,QAAQq4B,KAElD,MAAPlV,GAAuB,MAARnpF,EAIf,MAFArT,SAAQo0C,KAAK,wEAEN33C,IAIX,IAAI4W,EACJ,CACI,OAAQsN,GAGJ,IAAKke,GAAOw6C,QAAQq4B,IAChB,KAGJ,KAAK7yE,GAAOw6C,QAAQs4B,WAEI,gBAATt+F,KAEPA,EAAO+2F,KAAK3iE,MAAMp0B,IAK9B5W,KAAKmyC,KAAK0B,MAAMq6D,WAAWvrF,EAAK,KAAM/L,EAAMsN,OAI5ClkB,MAAKo0G,cAAc,UAAWzxF,EAAKo9E,GAAO77E,OAAQA,GAGtD,OAAOlkB,OAeXq0C,QAAS,SAAU1xB,EAAKo9E,EAAKnpF,EAAMsN,GAM/B,MAJmB,mBAAR67E,KAAuBA,EAAM,MACpB,mBAATnpF,KAAwBA,EAAO,MACpB,mBAAXsN,KAA0BA,EAASke,EAAO0d,QAAQq1D,kBAElD,MAAPpV,GAAuB,MAARnpF,GAEfrT,QAAQo0C,KAAK,wEAEN33C,OAIP4W,GAEoB,gBAATA,KAEPA,EAAO+2F,KAAK3iE,MAAMp0B,IAGtB5W,KAAKmyC,KAAK0B,MAAMg7D,eAAelsF,EAAK,KAAM/L,EAAMsN,IAIhDlkB,KAAKo0G,cAAc,UAAWzxF,EAAKo9E,GAAO77E,OAAQA,IAG/ClkB,OAgBX4uG,WAAY,SAAUjsF,EAAKyyF,EAAYC,EAAQ3G,EAASryB,EAAUC,GAQ9D,GANsB,mBAAX+4B,KAA0BA,EAAS,MACvB,mBAAZ3G,KAA2BA,EAAU,MACxB,mBAAbryB,KAA4BA,EAAW,GAC1B,mBAAbC,KAA4BA,EAAW,GAG9C+4B,EAEAr1G,KAAKo0G,cAAc,aAAczxF,EAAKyyF,GAAcC,OAAQA,EAAQh5B,SAAUA,EAAUC,SAAUA,QAKlG,IAAuB,gBAAZoyB,GACX,CACI,GAAI3C,EAEJ,KACI,GAAIroG,OAAkB,UACtB,CACI,GAAI4xG,GAAY,GAAIC,UACpBxJ,GAAMuJ,EAAUE,gBAAgB9G,EAAS,gBAIzC3C,GAAM,GAAItwF,eAAc,oBACxBswF,EAAI0J,MAAQ,QACZ1J,EAAI2J,QAAQhH,GAGpB,MAAO/yF,GAEHowF,EAAMt+F,OAGV,IAAKs+F,IAAQA,EAAI58C,iBAAmB48C,EAAIC,qBAAqB,eAAe3nG,OAExE,KAAM,IAAIyI,OAAM,+CAIhB9M,MAAKo0G,cAAc,aAAczxF,EAAKyyF,GAAcC,OAAQ,KAAM3G,QAAS3C,EAAK1vB,SAAUA,EAAUC,SAAUA,IAK1H,MAAOt8E,OAcX21G,eAAgB,SAAUhzF,EAAKyyF,EAAYJ,EAAU3G,GAEjD,MAAOruG,MAAK41G,MAAMjzF,EAAKyyF,EAAYJ,EAAU3G,EAAWjsE,EAAOyyB,OAAOy5C,2BAc1EuH,cAAe,SAAUlzF,EAAKyyF,EAAYJ,EAAU3G,GAEhD,MAAOruG,MAAK41G,MAAMjzF,EAAKyyF,EAAYJ,EAAU3G,EAAWjsE,EAAOyyB,OAAO05C,0BAc1EuH,SAAU,SAAUnzF,EAAKyyF,EAAYJ,EAAU3G,GAE3C,MAAOruG,MAAK41G,MAAMjzF,EAAKyyF,EAAYJ,EAAU3G,EAAWjsE,EAAOyyB,OAAO25C,6BAe1EoH,MAAO,SAAUjzF,EAAKyyF,EAAYJ,EAAU3G,EAAWnqF,GAOnD,GALwB,mBAAb8wF,KAA4BA,EAAW,MACzB,mBAAd3G,KAA6BA,EAAY,MAC9B,mBAAXnqF,KAA0BA,EAASke,EAAOyyB,OAAOy5C,0BAGxD0G,EAEAh1G,KAAKo0G,cAAc,eAAgBzxF,EAAKyyF,GAAcJ,SAAUA,EAAU9wF,OAAQA,QAGtF,CACI,OAAQA,GAGJ,IAAKke,GAAOyyB,OAAOy5C,yBAEU,gBAAdD,KAEPA,EAAYV,KAAK3iE,MAAMqjE,GAE3B,MAGJ,KAAKjsE,GAAOyyB,OAAO25C,2BAEf,GAAyB,gBAAdH,GACX,CACI,GAAItC,EAEJ,KACI,GAAIroG,OAAkB,UACtB,CACI,GAAI4xG,GAAY,GAAIC,UACpBxJ,GAAMuJ,EAAUE,gBAAgBnH,EAAW,gBAI3CtC,GAAM,GAAItwF,eAAc,oBACxBswF,EAAI0J,MAAQ,QACZ1J,EAAI2J,QAAQrH,GAGpB,MAAO1yF,GAEHowF,EAAMt+F,OAGV,IAAKs+F,IAAQA,EAAI58C,iBAAmB48C,EAAIC,qBAAqB,eAAe3nG,OAExE,KAAM,IAAIyI,OAAM,iDAIhBuhG,GAAYtC,GAM5B/rG,KAAKo0G,cAAc,eAAgBzxF,EAAKyyF,GAAcJ,SAAU,KAAM3G,UAAWA,EAAWnqF,OAAQA,IAIxG,MAAOlkB,OAWX+1G,WAAY,SAAU9yG,EAAM0f,GAExB,GAAI+vE,GAAO1yF,KAAKm0G,SAASlxG,EAAM0f,EAE3B+vE,MAAS,GAET1yF,KAAKyzG,UAAU5mG,OAAO6lF,EAAK/lF,MAAO,IAU1C8qC,UAAW,WAEPz3C,KAAKyzG,UAAUpvG,OAAS,GAS5B+K,MAAO,WAECpP,KAAK6yG,YAKL7yG,KAAKuzG,UAAUlvG,OAAS,GAExBrE,KAAKwzG,WAAa,EAClBxzG,KAAKg2G,YAILh2G,KAAKi2G,cAWbA,UAAW,WAEPj2G,KAAK8yG,SAAW,EAChB9yG,KAAK+yG,cAAgB,EACrB/yG,KAAK2P,WAAY,EACjB3P,KAAK6yG,WAAY,EAEjB7yG,KAAKizG,YAAYn6D,SAAS94C,KAAKyzG,UAAUpvG,QAErCrE,KAAKyzG,UAAUpvG,OAAS,GAExBrE,KAAK0zG,WAAa,EAClB1zG,KAAK2zG,eAAiB,IAAM3zG,KAAKyzG,UAAUpvG,OAC3CrE,KAAKk2G,aAILl2G,KAAK8yG,SAAW,IAChB9yG,KAAK+yG,cAAgB,IACrB/yG,KAAK2P,WAAY,EACjB3P,KAAK6yG,WAAY,EACjB7yG,KAAKu2C,eAAeuC,aAW5Bk9D,SAAU,WAEN,IAAKh2G,KAAKuzG,UAAUvzG,KAAKwzG,YAGrB,WADAjwG,SAAQo0C,KAAK,4CAA8C33C,KAAKwzG,WAIpE,IAAIgB,GAAOx0G,KAAKuzG,UAAUvzG,KAAKwzG,WAEb,QAAdgB,EAAK59F,KAEL5W,KAAKm2G,iBAAiBn2G,KAAKwzG,YAAY,GAKvCxzG,KAAKo2G,QAAQp2G,KAAKwzG,WAAYxzG,KAAK4yG,QAAU4B,EAAKzU,IAAK,OAAQ,mBAAoB,kBAa3FoW,iBAAkB,SAAUxpG,EAAOq+B,GAI/B,GAFqB,mBAAVA,KAAyBA,GAAQ,IAEvChrC,KAAKuzG,UAAU5mG,GAGhB,WADApJ,SAAQo0C,KAAK,gDAAkDhrC,EAInE,IAAI6nG,GAAOx0G,KAAKuzG,UAAU5mG,EAI1B,IAFA6nG,EAAKF,QAAS,EAEVtpE,EAEA,GAAIp0B,GAAO+2F,KAAK3iE,MAAMhrC,KAAK4zG,KAAKyC,kBAIhC,IAAIz/F,GAAO5W,KAAKuzG,UAAU5mG,GAAOiK,IAGrC,IAAIA,EAAK49F,EAAK7xF,KAIV,IAAK,GAFD+vE,GAEKvuF,EAAI,EAAGA,EAAIyS,EAAK49F,EAAK7xF,KAAKte,OAAQF,IAIvC,OAFAuuF,EAAO97E,EAAK49F,EAAK7xF,KAAKxe,GAEduuF,EAAKzvF,MAET,IAAK,QACDjD,KAAK4/B,MAAM8yD,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK+hB,UACpC,MAEJ,KAAK,OACDz0G,KAAKmT,KAAKu/E,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK+hB,UACnC,MAEJ,KAAK,OACDz0G,KAAKurG,KAAK7Y,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK+hB,UACnC,MAEJ,KAAK,MACDz0G,KAAK+rG,IAAIrZ,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK+hB,UAClC,MAEJ,KAAK,SACDz0G,KAAK00G,OAAOhiB,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAKr4E,SAAUm6F,EAAK19D,gBACpD,MAEJ,KAAK,SACD92C,KAAK20G,OAAOjiB,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAKr4E,SAAUm6F,EAAK19D,gBACpD,MAEJ,KAAK,cACD92C,KAAK40G,YAAYliB,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAKqY,WAAYrY,EAAKsY,YAAatY,EAAKuY,SAAUvY,EAAKppC,OAAQopC,EAAKwY,QACzG,MAEJ,KAAK,QACDlrG,KAAKk7E,MAAMwX,EAAK/vE,IAAK+vE,EAAKmiB,KAAMniB,EAAKoiB,WACrC,MAEJ,KAAK,UACD90G,KAAKy8E,QAAQiW,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KAAMwrB,EAAOw6C,QAAQ8V,EAAKxuE,QAChE,MAEJ,KAAK,UACDlkB,KAAKq0C,QAAQq+C,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KAAMwrB,EAAOyyB,OAAO69B,EAAKxuE,QAC/D,MAEJ,KAAK,aACDlkB,KAAK4uG,WAAWlc,EAAK/vE,IAAK+vE,EAAK0iB,WAAY1iB,EAAK2iB,OAAQ3iB,EAAKgc,QAAShc,EAAKrW,SAAUqW,EAAKpW,SAC1F,MAEJ,KAAK,iBACDt8E,KAAK21G,eAAejjB,EAAK/vE,IAAK+vE,EAAK0iB,WAAY1iB,EAAKsiB,SAAUtiB,EAAK2b,UACnE,MAEJ,KAAK,gBACDruG,KAAK61G,cAAcnjB,EAAK/vE,IAAK+vE,EAAK0iB,WAAY1iB,EAAKsiB,SAAUtiB,EAAK2b,UAClE,MAEJ,KAAK,WACDruG,KAAK81G,SAASpjB,EAAK/vE,IAAK+vE,EAAK0iB,WAAY1iB,EAAKsiB,SAAUtiB,EAAK2b,UAC7D,MAEJ,KAAK,QACDruG,KAAK41G,MAAMljB,EAAK/vE,IAAK+vE,EAAK0iB,WAAY1iB,EAAKsiB,SAAUtiB,EAAK2b,UAAWjsE,EAAOyyB,OAAO69B,EAAKxuE,SAMxGlkB,KAAKs2G,SAAS3pG,GAAO,IAWzB4pG,UAAW,SAAU5pG,GAEjB3M,KAAKuzG,UAAU5mG,GAAO2nG,QAAS,EAC/Bt0G,KAAKuzG,UAAU5mG,GAAO0oF,OAAQ,EAE9Br1F,KAAKozG,YAAYt6D,SAAS94C,KAAKuzG,UAAU5mG,GAAOgW,IAAK3iB,KAAKuzG,UAAU5mG,IAEpEpJ,QAAQo0C,KAAK,0CAA4C33C,KAAKuzG,UAAU5mG,GAAOgW,IAAM,aAAe3iB,KAAKuzG,UAAU5mG,GAAOozF,KAE1H//F,KAAKs2G,SAAS3pG,GAAO,IAUzB2pG,SAAU,SAAU3pG,EAAO6pG,GAEvBx2G,KAAKqzG,eAAev6D,SAAS94C,KAAKuzG,UAAU5mG,GAAOgW,IAAK6zF,EAASx2G,KAAKy2G,mBAAoBz2G,KAAKuzG,UAAUlvG,QAEzGrE,KAAKwzG,aAEDxzG,KAAKwzG,WAAaxzG,KAAKuzG,UAAUlvG,OAEjCrE,KAAKg2G,WAILh2G,KAAKi2G,aAWbC,SAAU,WAEN,IAAKl2G,KAAKyzG,UAAUzzG,KAAK0zG,YAGrB,WADAnwG,SAAQo0C,KAAK,wCAA0C33C,KAAK0zG,WAIhE,IAAIhhB,GAAO1yF,KAAKyzG,UAAUzzG,KAAK0zG,YAC3B71D,EAAQ79C,IAKZ,QAHAA,KAAKkzG,YAAYp6D,SAAS94C,KAAK8yG,SAAUpgB,EAAK/vE,IAAK+vE,EAAKqN,KAGhDrN,EAAKzvF,MAET,IAAK,QACL,IAAK,cACL,IAAK,eACL,IAAK,aACDyvF,EAAK97E,KAAO,GAAIuiB,OAChBu5D,EAAK97E,KAAKyG,KAAOq1E,EAAK/vE,IACtB+vE,EAAK97E,KAAKwoB,OAAS,WACf,MAAOye,GAAM64D,aAAa74D,EAAM61D,aAEpChhB,EAAK97E,KAAKyoB,QAAU,WAChB,MAAOwe,GAAM84D,UAAU94D,EAAM61D,aAE7B1zG,KAAK6/B,cAEL6yD,EAAK97E,KAAKipB,YAAc7/B,KAAK6/B,aAEjC6yD,EAAK97E,KAAK2J,IAAMvgB,KAAK4yG,QAAUlgB,EAAKqN,GACpC,MAEJ,KAAK,QACDrN,EAAKqN,IAAM//F,KAAK42G,YAAYlkB,EAAKqN,KAEhB,OAAbrN,EAAKqN,IAGD//F,KAAKmyC,KAAK8B,MAAM4iE,cAEhB72G,KAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAKqN,IAAK,cAAe,eAAgB,aAEjF//F,KAAKmyC,KAAK8B,MAAM6iE,gBAEjB92G,KAAKmyC,KAAK8B,MAAMq7D,aAGhB5c,EAAK97E,KAAO,GAAImgG,OAChBrkB,EAAK97E,KAAKyG,KAAOq1E,EAAK/vE,IACtB+vE,EAAK97E,KAAK29B,QAAU,OACpBm+C,EAAK97E,KAAK2J,IAAMvgB,KAAK4yG,QAAUlgB,EAAKqN,IACpC//F,KAAK02G,aAAa12G,KAAK0zG,cAIvBhhB,EAAK97E,KAAO,GAAImgG,OAChBrkB,EAAK97E,KAAKyG,KAAOq1E,EAAK/vE,IACtB+vE,EAAK97E,KAAKyoB,QAAU,WAChB,MAAOwe,GAAM84D,UAAU94D,EAAM61D,aAEjChhB,EAAK97E,KAAK29B,QAAU,OACpBm+C,EAAK97E,KAAK2J,IAAMvgB,KAAK4yG,QAAUlgB,EAAKqN,IACpCrN,EAAK97E,KAAKgG,iBAAiB,iBAAkB,WAAcwlB,EAAOC,MAAMwb,EAAM1L,KAAKjsC,IAAI6tC,KAAK2iE,aAAa74D,EAAM61D,cAAgB,GAC/HhhB,EAAK97E,KAAKm9B,SAMlB/zC,KAAK22G,UAAU32G,KAAK0zG,WAGxB,MAEJ,KAAK,OAEG1zG,KAAKszG,mBAAqB5vG,OAAOszG,gBAEjCh3G,KAAK6zG,MAAQ,GAAInwG,QAAOszG,eAKxBh3G,KAAK6zG,MAAMoD,QAAU,IAErBj3G,KAAK6zG,MAAMx0E,QAAU,WACjB,MAAOwe,GAAMq5D,cAAcr5D,EAAM61D,aAGrC1zG,KAAK6zG,MAAMsD,UAAY,WACnB,MAAOt5D,GAAMq5D,cAAcr5D,EAAM61D,aAGrC1zG,KAAK6zG,MAAMuD,WAAa,aAExBp3G,KAAK6zG,MAAMz0E,OAAS,WAChB,MAAOye,GAAMw5D,iBAAiBx5D,EAAM61D,aAGxC1zG,KAAK6zG,MAAMyD,KAAK,MAAOt3G,KAAK4yG,QAAUlgB,EAAKqN,KAAK,GAIhDrlF,WAAW,WACPmjC,EAAMg2D,MAAM0D,QACb,IAIHv3G,KAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAKqN,IAAK,OAAQ,mBAAoB,gBAGvF,MAEJ,KAAK,MAED//F,KAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAKqN,IAAK,OAAQ,kBAAmB,gBAClF,MAEJ,KAAK,UAED,GAAIrN,EAAKxuE,SAAWke,EAAOw6C,QAAQs4B,WAE/Bl1G,KAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAKqN,IAAK,OAAQ,mBAAoB,qBAElF,CAAA,GAAIrN,EAAKxuE,SAAWke,EAAOw6C,QAAQq4B,IAMpC,KAAM,IAAInoG,OAAM,0CAA4C4lF,EAAKxuE,OAJjElkB,MAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAKqN,IAAK,OAAQ,kBAAmB,iBAMtF,KAEJ,KAAK,OACL,IAAK,SACL,IAAK,UACD//F,KAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAKqN,IAAK,OAAQ,eAAgB,YAC/E,MAEJ,KAAK,SACD//F,KAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAKqN,IAAK,cAAe,eAAgB,eAiBlGqW,QAAS,SAAUzpG,EAAOozF,EAAK98F,EAAMm8B,EAAQC,GAEzCr/B,KAAK4zG,KAAK0D,KAAK,MAAOvX,GAAK,GAC3B//F,KAAK4zG,KAAK4D,aAAev0G,CAEzB,IAAI46C,GAAQ79C,IAEZA,MAAK4zG,KAAKx0E,OAAS,WACf,MAAOye,GAAMze,GAAQzyB,IAGzB3M,KAAK4zG,KAAKv0E,QAAU,WAChB,MAAOwe,GAAMxe,GAAS1yB,IAG1B3M,KAAK4zG,KAAK2D,QAWdX,YAAa,SAAU/B,GAEnB,GAAI4C,EAEgB,iBAAT5C,KAAqBA,GAAQA,GAExC,KAAK,GAAI1wG,GAAI,EAAGA,EAAI0wG,EAAKxwG,OAAQF,IAU7B,GARAszG,EAAY5C,EAAK1wG,GAAGf,cACpBq0G,EAAYA,EAAU79F,QAAQ1X,KAAKgT,IAAI,EAAGuiG,EAAUC,YAAY,OAASppG,KAAY,GAEjFmpG,EAAUp0G,QAAQ,MAAQ,IAE1Bo0G,EAAYA,EAAU79F,OAAO,EAAG69F,EAAUp0G,QAAQ,OAGlDrD,KAAKmyC,KAAKyM,OAAO+4C,aAAa8f,GAE9B,MAAO5C,GAAK1wG,EAIpB,OAAO,OAUXwyG,UAAW,SAAUhqG,GAEjB3M,KAAKyzG,UAAU9mG,GAAO2nG,QAAS,EAC/Bt0G,KAAKyzG,UAAU9mG,GAAO0oF,OAAQ,EAE9Br1F,KAAKozG,YAAYt6D,SAAS94C,KAAKyzG,UAAU9mG,GAAOgW,IAAK3iB,KAAKyzG,UAAU9mG,IAEpEpJ,QAAQo0C,KAAK,qCAAuC33C,KAAKyzG,UAAU9mG,GAAOgW,IAAM,aAAe3iB,KAAKyzG,UAAU9mG,GAAOozF,KAErH//F,KAAK23G,SAAShrG,GAAO,IAUzB+pG,aAAc,SAAU/pG,GAEpB,IAAK3M,KAAKyzG,UAAU9mG,GAGhB,WADApJ,SAAQo0C,KAAK,4CAA8ChrC,EAI/D,IAAI+lF,GAAO1yF,KAAKyzG,UAAU9mG,EAC1B+lF,GAAK4hB,QAAS,CAEd,IAAIsD,IAAW,CAEf,QAAQllB,EAAKzvF,MAET,IAAK,QAEDjD,KAAKmyC,KAAK0B,MAAMo7D,SAASvc,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KAClD,MAEJ,KAAK,cAED5W,KAAKmyC,KAAK0B,MAAMm6D,eAAetb,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KAAM87E,EAAKqY,WAAYrY,EAAKsY,YAAatY,EAAKuY,SAAUvY,EAAKppC,OAAQopC,EAAKwY,QAClI,MAEJ,KAAK,eAED,GAAqB,MAAjBxY,EAAKsiB,SAELh1G,KAAKmyC,KAAK0B,MAAMu6D,gBAAgB1b,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KAAM87E,EAAK2b,UAAW3b,EAAKxuE,YAOpF,IAFA0zF,GAAW,EAEPllB,EAAKxuE,QAAUke,EAAOyyB,OAAOy5C,0BAA4B5b,EAAKxuE,QAAUke,EAAOyyB,OAAO05C,wBAEtFvuG,KAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAKsiB,SAAU,OAAQ,mBAAoB,qBAEvF,CAAA,GAAItiB,EAAKxuE,QAAUke,EAAOyyB,OAAO25C,2BAMlC,KAAM,IAAI1hG,OAAM,gDAAkD4lF,EAAKxuE,OAJvElkB,MAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAKsiB,SAAU,OAAQ,kBAAmB,iBAO/F,KAEJ,KAAK,aAEkB,MAAftiB,EAAK2iB,OAELr1G,KAAKmyC,KAAK0B,MAAM46D,cAAc/b,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KAAM87E,EAAKgc,QAAShc,EAAKrW,SAAUqW,EAAKpW,WAK/Fs7B,GAAW,EACX53G,KAAKo2G,QAAQp2G,KAAK0zG,WAAY1zG,KAAK4yG,QAAUlgB,EAAK2iB,OAAQ,OAAQ,kBAAmB,iBAEzF,MAEJ,KAAK,QAED,GAAIr1G,KAAKmyC,KAAK8B,MAAM4iE,eAMhB,GAJAnkB,EAAK97E,KAAO5W,KAAK4zG,KAAKiE,SAEtB73G,KAAKmyC,KAAK0B,MAAMq7D,SAASxc,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,MAAM,GAAM,GAE1D87E,EAAKoiB,WACT,CACI,GAAIgD,GAAO93G,KACP2iB,EAAM+vE,EAAK/vE,GAEf3iB,MAAKmyC,KAAK0B,MAAM47D,YAAY9sF,EAAK,cAAc,GAE/C3iB,KAAKmyC,KAAK8B,MAAMnjC,QAAQinG,gBAAgBrlB,EAAK97E,KAAM,SAAUgR,GACrDA,IAEAkwF,EAAK3lE,KAAK0B,MAAM67D,aAAa/sF,EAAKiF,GAClCkwF,EAAK3lE,KAAK8B,MAAM+jE,cAAcl/D,SAASn2B,EAAKm1F,EAAK3lE,KAAK0B,MAAMu9D,SAASzuF,YAOjF+vE,GAAK97E,KAAKsG,oBAAoB,iBAAkBklB,EAAOC,MAAMriC,KAAKmyC,KAAKjsC,IAAI6tC,KAAK2iE,cAChF12G,KAAKmyC,KAAK0B,MAAMq7D,SAASxc,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,MAAM,GAAO,EAEnE,MAEJ,KAAK,OACD87E,EAAK97E,KAAO5W,KAAK4zG,KAAKyC,aACtBr2G,KAAKmyC,KAAK0B,MAAMi7D,QAAQpc,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KACjD,MAEJ,KAAK,UACD,GAAIA,GAAO+2F,KAAK3iE,MAAMhrC,KAAK4zG,KAAKyC,aAChCr2G,MAAKmyC,KAAK0B,MAAMg7D,eAAenc,EAAK/vE,IAAK+vE,EAAKqN,IAAKnpF,EAAM87E,EAAKxuE,OAC9D,MAEJ,KAAK,SACDwuE,EAAK97E,KAAOtD,SAASC,cAAc,UACnCm/E,EAAK97E,KAAKqhG,SAAW,aACrBvlB,EAAK97E,KAAK3T,KAAO,kBACjByvF,EAAK97E,KAAKshG,OAAQ,EAClBxlB,EAAK97E,KAAKzD,KAAOnT,KAAK4zG,KAAKyC,aAC3B/iG,SAAS6kG,KAAK9mD,YAAYqhC,EAAK97E,MAC3B87E,EAAKr4E,WAELq4E,EAAK97E,KAAO87E,EAAKr4E,SAAStW,KAAK2uF,EAAK57C,gBAAiB47C,EAAK/vE,IAAK3iB,KAAK4zG,KAAKyC,cAE7E,MAEJ,KAAK,SAGG3jB,EAAK97E,KAFL87E,EAAKr4E,SAEOq4E,EAAKr4E,SAAStW,KAAK2uF,EAAK57C,gBAAiB47C,EAAK/vE,IAAK3iB,KAAK4zG,KAAKiE,UAI7D73G,KAAK4zG,KAAKiE,SAG1B73G,KAAKmyC,KAAK0B,MAAMi6D,UAAUpb,EAAK/vE,IAAK+vE,EAAK97E,MAK7CghG,GAEA53G,KAAK23G,SAAShrG,GAAO,IAW7B0qG,iBAAkB,SAAU1qG,GAExB,IAAK3M,KAAKyzG,UAAU9mG,GAGhB,WADApJ,SAAQo0C,KAAK,gDAAkDhrC,EAInE,IAAI+lF,GAAO1yF,KAAKyzG,UAAU9mG,EAE1B,IAAI3M,KAAK6zG,OAAS7zG,KAAK6zG,MAAMwC,aAEzB,GAAIz/F,GAAO+2F,KAAK3iE,MAAMhrC,KAAK6zG,MAAMwC,kBAIjC,IAAIz/F,GAAO+2F,KAAK3iE,MAAMhrC,KAAK4zG,KAAKyC,aAGpC3jB,GAAK4hB,QAAS,EAEI,YAAd5hB,EAAKzvF,KAELjD,KAAKmyC,KAAK0B,MAAMq6D,WAAWxb,EAAK/vE,IAAK+vE,EAAKqN,IAAKnpF,EAAM87E,EAAKxuE,QAEvC,SAAdwuE,EAAKzvF,KAEVjD,KAAKmyC,KAAK0B,MAAMk7D,QAAQrc,EAAK/vE,IAAK+vE,EAAKqN,IAAKnpF,GAI5C5W,KAAKmyC,KAAK0B,MAAMu6D,gBAAgB1b,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KAAMA,EAAM87E,EAAKxuE,QAG9ElkB,KAAK23G,SAAShrG,GAAO,IAUzByrG,gBAAiB,SAAUzrG,GAEvB,IAAK3M,KAAKyzG,UAAU9mG,GAGhB,WADApJ,SAAQo0C,KAAK,+CAAiDhrC,EAIlE,IAAI+lF,GAAO1yF,KAAKyzG,UAAU9mG,GACtBiK,EAAO5W,KAAK4zG,KAAKyC,YAErB3jB,GAAK4hB,QAAS,EAEdt0G,KAAKmyC,KAAK0B,MAAMq6D,WAAWxb,EAAK/vE,IAAK+vE,EAAKqN,IAAKnpF,EAAM87E,EAAKxuE,QAE1DlkB,KAAK23G,SAAShrG,GAAO,IAUzBuqG,cAAe,SAAUvqG,GAErB,GAAI+lF,GAAO1yF,KAAKyzG,UAAU9mG,EAE1B+lF,GAAK4hB,QAAS,EACd5hB,EAAK2C,OAAQ,EAEb9xF,QAAQo0C,KAAK,gCAAkC+6C,EAAK/vE,KAEpD3iB,KAAK23G,SAAShrG,GAAO,IAUzB0rG,gBAAiB,SAAU1rG,GAEQ,KAA3B3M,KAAK4zG,KAAK4D,cAAkD,SAA3Bx3G,KAAK4zG,KAAK4D,eAE3Cj0G,QAAQo0C,KAAK,4BAA6B33C,KAAKyzG,UAAU9mG,IACzDpJ,QAAQo0C,KAAK33C,KAAK4zG,MAGtB,IACI7H,GADAn1F,EAAO5W,KAAK4zG,KAAKyC,YAGrB,KAEI,GAAI3yG,OAAkB,UACtB,CACI,GAAI4xG,GAAY,GAAIC,UACpBxJ,GAAMuJ,EAAUE,gBAAgB5+F,EAAM,gBAItCm1F,GAAM,GAAItwF,eAAc,oBACxBswF,EAAI0J,MAAQ,QACZ1J,EAAI2J,QAAQ9+F,GAGpB,MAAO+E,GAEHowF,EAAMt+F,OAGV,IAAKs+F,IAAQA,EAAI58C,iBAAmB48C,EAAIC,qBAAqB,eAAe3nG,OAExE,KAAM,IAAIyI,OAAM,mCAGpB,IAAI4lF,GAAO1yF,KAAKyzG,UAAU9mG,EAC1B+lF,GAAK4hB,QAAS,EAEI,eAAd5hB,EAAKzvF,KAELjD,KAAKmyC,KAAK0B,MAAM46D,cAAc/b,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KAAMm1F,EAAKrZ,EAAKrW,SAAUqW,EAAKpW,UAEnE,iBAAdoW,EAAKzvF,KAEVjD,KAAKmyC,KAAK0B,MAAMu6D,gBAAgB1b,EAAK/vE,IAAK+vE,EAAKqN,IAAKrN,EAAK97E,KAAMm1F,EAAKrZ,EAAKxuE,QAEtD,QAAdwuE,EAAKzvF,MAEVjD,KAAKmyC,KAAK0B,MAAMm7D,OAAOtc,EAAK/vE,IAAK+vE,EAAKqN,IAAKgM,GAG/C/rG,KAAK23G,SAAShrG,GAAO,IAYzBgrG,SAAU,SAAUW,EAAe9B,GAE/Bx2G,KAAK+yG,eAAiB/yG,KAAK2zG,eAC3B3zG,KAAK8yG,SAAW5wG,KAAKwlC,MAAM1nC,KAAK+yG,eAE5B/yG,KAAK8yG,SAAW,MAEhB9yG,KAAK8yG,SAAW,KAGO,OAAvB9yG,KAAKgzG,gBAEgC,IAAjChzG,KAAKgzG,cAAc1tE,UAEnBtlC,KAAKgzG,cAAcz3E,KAAKp0B,MAAQjF,KAAKmoC,MAAOrqC,KAAKgzG,cAAc7rG,MAAQ,IAAOnH,KAAK8yG,UAInF9yG,KAAKgzG,cAAcz3E,KAAKn0B,OAASlF,KAAKmoC,MAAOrqC,KAAKgzG,cAAc5rG,OAAS,IAAOpH,KAAK8yG,UAGzF9yG,KAAKgzG,cAAcl/E,OAAOgxD,cAG9B9kF,KAAKmzG,eAAer6D,SAAS94C,KAAK8yG,SAAU9yG,KAAKyzG,UAAU6E,GAAe31F,IAAK6zF,EAASx2G,KAAKu4G,mBAAoBv4G,KAAKyzG,UAAUpvG,QAE5HrE,KAAKu3C,mBAAqB,GAE1Bv3C,KAAK0zG,aACL1zG,KAAKk2G,aAILl2G,KAAK2P,WAAY,EACjB3P,KAAK6yG,WAAY,EAEjB7yG,KAAKy3C,YAELz3C,KAAKu2C,eAAeuC,aAW5By/D,iBAAkB,WAId,IAAK,GAFD/6E,GAAQ,EAEHr5B,EAAI,EAAGA,EAAInE,KAAKyzG,UAAUpvG,OAAQF,IAEnCnE,KAAKyzG,UAAUtvG,GAAGmwG,QAElB92E,GAIR,OAAOA,IAUX+Z,iBAAkB,WAId,IAAK,GAFD/Z,GAAQ,EAEHr5B,EAAI,EAAGA,EAAInE,KAAKyzG,UAAUpvG,OAAQF,IAEnCnE,KAAKyzG,UAAUtvG,GAAGmwG,UAAW,GAE7B92E,GAIR,OAAOA,IAUXi5E,iBAAkB,WAId,IAAK,GAFDj5E,GAAQ,EAEHr5B,EAAI,EAAGA,EAAInE,KAAKuzG,UAAUlvG,OAAQF,IAEnCnE,KAAKuzG,UAAUpvG,GAAGmwG,QAElB92E,GAIR,OAAOA,IAUXga,iBAAkB,WAId,IAAK,GAFDha,GAAQ,EAEHr5B,EAAI,EAAGA,EAAInE,KAAKuzG,UAAUlvG,OAAQF,IAEnCnE,KAAKuzG,UAAUpvG,GAAGmwG,UAAW,GAE7B92E,GAIR,OAAOA,KAMf4E,EAAOyyB,OAAOhxD,UAAUsB,YAAci9B,EAAOyyB,OAa7CzyB,EAAOusE,cAYHC,WAAY,SAAUz8D,EAAM45D,EAAKP,EAAUnvB,EAAUC,GAEjD,GAAI1lE,MACA4hG,EAAOzM,EAAIC,qBAAqB,QAAQ,GACxCyM,EAAS1M,EAAIC,qBAAqB,UAAU,EAEhDp1F,GAAK/C,KAAO2kG,EAAKE,aAAa,QAC9B9hG,EAAKkB,KAAOF,SAAS4gG,EAAKE,aAAa,QAAS,IAChD9hG,EAAKzB,WAAayC,SAAS6gG,EAAOC,aAAa,cAAe,IAAMp8B,EACpE1lE,EAAKoB,QAIL,KAAK,GAFD2gG,GAAU5M,EAAIC,qBAAqB,QAE9B7nG,EAAI,EAAGA,EAAIw0G,EAAQt0G,OAAQF,IACpC,CACI,GAAI8T,GAAWL,SAAS+gG,EAAQx0G,GAAGu0G,aAAa,MAAO,IAEnDE,EAAc,GAAI34G,MAAKiH,UACvB0Q,SAAS+gG,EAAQx0G,GAAGu0G,aAAa,KAAM,IACvC9gG,SAAS+gG,EAAQx0G,GAAGu0G,aAAa,KAAM,IACvC9gG,SAAS+gG,EAAQx0G,GAAGu0G,aAAa,SAAU,IAC3C9gG,SAAS+gG,EAAQx0G,GAAGu0G,aAAa,UAAW,IAGhD9hG,GAAKoB,MAAMC,IACPM,QAASX,SAAS+gG,EAAQx0G,GAAGu0G,aAAa,WAAY,IACtDlgG,QAASZ,SAAS+gG,EAAQx0G,GAAGu0G,aAAa,WAAY,IACtDjgG,SAAUb,SAAS+gG,EAAQx0G,GAAGu0G,aAAa,YAAa,IAAMr8B,EAC9D/jE,WACAzM,QAAS5L,KAAK+R,aAAaw5F,GAAY,GAAIvrG,MAAKmS,QAAQnS,KAAK4+B,iBAAiB2sE,GAAWoN;CAIjG,GAAIC,GAAW9M,EAAIC,qBAAqB,UAExC,KAAK7nG,EAAI,EAAGA,EAAI00G,EAASx0G,OAAQF,IACjC,CACI,GAAIi0C,GAAQxgC,SAASihG,EAAS10G,GAAGu0G,aAAa,SAAU,IACpDI,EAASlhG,SAASihG,EAAS10G,GAAGu0G,aAAa,UAAW,IACtDn7E,EAAS3lB,SAASihG,EAAS10G,GAAGu0G,aAAa,UAAW,GAE1D9hG,GAAKoB,MAAM8gG,GAAQxgG,QAAQ8/B,GAAS7a,EAGxCt9B,KAAKsX,WAAWM,MAAM2zF,GAAY50F,IAsB1CwrB,EAAOgoD,YAAc,SAAUj4C,EAAMxvB,GAMjC3iB,KAAKmyC,KAAOA,EAMZnyC,KAAK2iB,IAAMA,EAMX3iB,KAAKy9C,OAASz9C,KAAKmyC,KAAK0B,MAAM69D,QAAQ/uF,EAAM,eAM5C3iB,KAAK+4G,YAAc,KAOnB/4G,KAAKg5G,UAAW,EAMhBh5G,KAAKi5G,SAEL,KAAK,GAAIjqC,KAAKhvE,MAAKy9C,OAAOy7D,UAC1B,CACI,GAAIlvB,GAAShqF,KAAKy9C,OAAOy7D,UAAUlqC,GAC/B/6B,EAAQj0C,KAAKmyC,KAAKnJ,IAAIiL,MAAMj0C,KAAK2iB,IAEjCqnE,GAAO7O,KAEPlnC,EAAMklE,UAAUnqC,EAAGgb,EAAO56E,MAAQ46E,EAAOl8E,IAAMk8E,EAAO56E,MAAQ,MAAM,GAIpE6kC,EAAMklE,UAAUnqC,EAAGgb,EAAO56E,MAAQ46E,EAAOl8E,IAAMk8E,EAAO56E,MAAQ,MAAM,GAGxEpP,KAAKi5G,OAAOjqC,GAAK/6B,EAGjBj0C,KAAKy9C,OAAOu7D,WAEZh5G,KAAK+4G,YAAc/4G,KAAKy9C,OAAOu7D,SAC/Bh5G,KAAKqlF,KAAKrlF,KAAK+4G,aACf/4G,KAAKg5G,SAAWh5G,KAAKi5G,OAAOj5G,KAAK+4G,eAKzC32E,EAAOgoD,YAAYvmF,WAUfwhF,KAAM,SAAU2E,EAAQ/9C,GAIpB,MAFsB,mBAAXA,KAA0BA,EAAS,GAEvCjsC,KAAKi5G,OAAOjvB,GAAQ3E,KAAK2E,EAAQ,KAAM/9C,IAUlDj9B,KAAM,SAAUg7E,GAEZ,GAAKA,EASDhqF,KAAKi5G,OAAOjvB,GAAQh7E,WAPpB,KAAK,GAAI2T,KAAO3iB,MAAKi5G,OAEjBj5G,KAAKi5G,OAAOt2F,GAAK3T,QAiB7B3F,IAAK,SAAS2gF,GAEV,MAAOhqF,MAAKi5G,OAAOjvB,KAM3B5nD,EAAOgoD,YAAYvmF,UAAUsB,YAAci9B,EAAOgoD,YAkBlDhoD,EAAO+nD,MAAQ,SAAUh4C,EAAMxvB,EAAKspB,EAAQkvC,EAAMnN,GAExB,mBAAX/hC,KAA0BA,EAAS,GAC1B,mBAATkvC,KAAwBA,GAAO,GACnB,mBAAZnN,KAA2BA,EAAU77B,EAAK8B,MAAMmlE,iBAM3Dp5G,KAAKmyC,KAAOA,EAKZnyC,KAAKqd,KAAOsF,EAKZ3iB,KAAK2iB,IAAMA,EAKX3iB,KAAKm7E,KAAOA,EAKZn7E,KAAKisC,OAASA,EAKdjsC,KAAKq5G,WAKLr5G,KAAK8Q,QAAU,KAKf9Q,KAAKg5G,UAAW,EAKhBh5G,KAAKs5G,cAAgB,EAMrBt5G,KAAKu5G,UAAY,EAKjBv5G,KAAKw5G,YAAc,EAKnBx5G,KAAKi8D,SAAW,EAKhBj8D,KAAKy5G,WAAa,EAKlBz5G,KAAK2H,SAAW,EAKhB3H,KAAK05G,SAAW,EAMhB15G,KAAK00C,QAAS,EAKd10C,KAAK25G,eAAiB,EAKtB35G,KAAKglG,WAAa,EAMlBhlG,KAAK0oG,WAAY,EAMjB1oG,KAAK45G,cAAgB,GAMrB55G,KAAK65G,iBAAkB,EAMvB75G,KAAK85G,UAAW,EAMhB95G,KAAK+5G,eAAgB,EAMrB/5G,KAAK62G,cAAgB72G,KAAKmyC,KAAK8B,MAAM4iE,cAKrC72G,KAAK82G,cAAgB92G,KAAKmyC,KAAK8B,MAAM6iE,cAKrC92G,KAAKg6G,aAAe,KAKpBh6G,KAAKi6G,eAAiB,KAKtBj6G,KAAKk6G,SAAW,KAEZl6G,KAAK62G,eAEL72G,KAAK8Q,QAAU9Q,KAAKmyC,KAAK8B,MAAMnjC,QAC/B9Q,KAAKi6G,eAAiBj6G,KAAKmyC,KAAK8B,MAAMkmE,WAIlCn6G,KAAKk6G,SAF8B,mBAA5Bl6G,MAAK8Q,QAAQspG,WAEJp6G,KAAK8Q,QAAQupG,iBAIbr6G,KAAK8Q,QAAQspG,aAGjCp6G,KAAKk6G,SAASI,KAAK/wG,MAAQ0iC,EAASjsC,KAAKmyC,KAAK8B,MAAMhI,OAEhD+hC,GAEAhuE,KAAKk6G,SAASlsC,QAAQhuE,KAAKi6G,iBAK3Bj6G,KAAKmyC,KAAK0B,MAAMu9D,SAASzuF,IAAQ3iB,KAAKmyC,KAAK0B,MAAM09D,aAAa5uF,IAE9D3iB,KAAKu6G,OAASv6G,KAAKmyC,KAAK0B,MAAMw9D,aAAa1uF,GAC3C3iB,KAAKs5G,cAAgB,EAEjBt5G,KAAKu6G,OAAOt+C,WAEZj8D,KAAKs5G,cAAgBt5G,KAAKu6G,OAAOt+C,WAKrCj8D,KAAKmyC,KAAK0B,MAAMu5D,cAAcpkE,IAAIhpC,KAAKw6G,iBAAkBx6G,MAOjEA,KAAKy6G,UAAY,GAAIr4E,GAAOuW,OAK5B34C,KAAK06G,OAAS,GAAIt4E,GAAOuW,OAKzB34C,KAAKm2C,QAAU,GAAI/T,GAAOuW,OAK1B34C,KAAKq2C,SAAW,GAAIjU,GAAOuW,OAK3B34C,KAAK6iG,OAAS,GAAIzgE,GAAOuW,OAKzB34C,KAAK26G,OAAS,GAAIv4E,GAAOuW,OAKzB34C,KAAK46G,OAAS,GAAIx4E,GAAOuW,OAKzB34C,KAAK66G,iBAAmB,GAAIz4E,GAAOuW,OAKnC34C,KAAK86G,eAAiB,GAAI14E,GAAOuW,OAMjC34C,KAAK+6G,QAAU9uE,EAMfjsC,KAAKg7G,QAAU,KAMfh7G,KAAKi7G,QAAS,EAMdj7G,KAAKk7G,YAAc,EAMnBl7G,KAAKm7G,cAAgB,EAMrBn7G,KAAKo7G,YAAc,EAMnBp7G,KAAKq7G,YAAc,EAMnBr7G,KAAKs7G,UAAY,EAMjBt7G,KAAKwzD,SAAU,EAMfxzD,KAAKu7G,2BAA4B,GAGrCn5E,EAAO+nD,MAAMtmF,WAQT22G,iBAAkB,SAAU73F,GAEpBA,IAAQ3iB,KAAK2iB,MAEb3iB,KAAKu6G,OAASv6G,KAAKmyC,KAAK0B,MAAMw9D,aAAarxG,KAAK2iB,KAChD3iB,KAAKs5G,cAAgBt5G,KAAKu6G,OAAOt+C,WAgBzCk9C,UAAW,SAAU97F,EAAMjO,EAAO6sD,EAAUhwB,EAAQkvC,GAE1B,mBAAXlvC,KAA0BA,EAAS,GAC1B,mBAATkvC,KAAwBA,GAAO,GAE1Cn7E,KAAKq5G,QAAQh8F,IACTA,KAAMA,EACNjO,MAAOA,EACPJ,KAAMI,EAAQ6sD,EACdhwB,OAAQA,EACRgwB,SAAUA,EACVw9C,WAAuB,IAAXx9C,EACZkf,KAAMA,IAUdqgC,aAAc,SAAUn+F,SAEbrd,MAAKq5G,QAAQh8F,IASxB7D,OAAQ,WAEAxZ,KAAKy7G,YAAcz7G,KAAKu7G,4BAExBv7G,KAAKy6G,UAAU3hE,SAAS94C,MACxBA,KAAKu7G,2BAA4B,GAGjCv7G,KAAK65G,iBAAmB75G,KAAKmyC,KAAK0B,MAAM09D,aAAavxG,KAAK2iB,OAE1D3iB,KAAK65G,iBAAkB,EACvB75G,KAAKqlF,KAAKrlF,KAAKk7G,YAAal7G,KAAKm7G,cAAen7G,KAAKo7G,YAAap7G,KAAKs7G,YAGvEt7G,KAAK0oG,YAEL1oG,KAAKw5G,YAAcx5G,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKu5G,UAE1Cv5G,KAAKw5G,aAAex5G,KAAKy5G,aAErBz5G,KAAK62G,cAED72G,KAAKm7E,MAGLn7E,KAAK6iG,OAAO/pD,SAAS94C,MAEM,KAAvBA,KAAK45G,eAEL55G,KAAKw5G,YAAc,EACnBx5G,KAAKu5G,UAAYv5G,KAAKmyC,KAAK+B,KAAKA,OAIhCl0C,KAAK66G,iBAAiB/hE,SAAS94C,KAAK45G,cAAe55G,MACnDA,KAAKqlF,KAAKrlF,KAAK45G,cAAe,EAAG55G,KAAKisC,QAAQ,GAAM,KAKxDjsC,KAAKgP,OAKLhP,KAAKm7E,MAELn7E,KAAK6iG,OAAO/pD,SAAS94C,MACrBA,KAAKqlF,KAAKrlF,KAAK45G,cAAe,EAAG55G,KAAKisC,QAAQ,GAAM,IAIpDjsC,KAAKgP,UAiBzBq2E,KAAM,SAAU2E,EAAQriF,EAAUskC,EAAQkvC,EAAMugC,GAK5C,GAHsB,mBAAX1xB,KAA0BA,EAAS,IAClB,mBAAjB0xB,KAAgCA,GAAe,GAEtD17G,KAAK0oG,YAAc1oG,KAAK+5G,gBAAkB2B,IAAiB17G,KAAK85G,SAGhE,MAAO95G,KAyBX,IAtBIA,KAAK0oG,YAAc1oG,KAAK+5G,gBAAkB/5G,KAAK85G,UAAY4B,KAEvD17G,KAAK62G,cAE2B,mBAArB72G,MAAKu6G,OAAOvrG,KAEnBhP,KAAKu6G,OAAOoB,QAAQ,GAIpB37G,KAAKu6G,OAAOvrG,KAAK,GAGhBhP,KAAK82G,gBAEV92G,KAAKu6G,OAAOnkE,QACZp2C,KAAKu6G,OAAOf,YAAc,IAIlCx5G,KAAK45G,cAAgB5vB,EAEN,KAAXA,EACJ,CACI,IAAIhqF,KAAKq5G,QAAQrvB,GA2Bb,MADAzmF,SAAQo0C,KAAK,mCAAqCqyC,EAAS,kBACpDhqF,IAxBPA,MAAK2H,SAAW3H,KAAKq5G,QAAQrvB,GAAQ56E,MACrCpP,KAAKisC,OAASjsC,KAAKq5G,QAAQrvB,GAAQ/9C,OACnCjsC,KAAKm7E,KAAOn7E,KAAKq5G,QAAQrvB,GAAQ7O,KACjCn7E,KAAKi8D,SAAWj8D,KAAKq5G,QAAQrvB,GAAQ/tB,SACrCj8D,KAAKy5G,WAAaz5G,KAAKq5G,QAAQrvB,GAAQyvB,WAEjB,mBAAXxtE,KAEPjsC,KAAKisC,OAASA,GAGE,mBAATkvC,KAEPn7E,KAAKm7E,KAAOA,GAGhBn7E,KAAKk7G,YAAclxB,EACnBhqF,KAAKm7G,cAAgBn7G,KAAK2H,SAC1B3H,KAAKo7G,YAAcp7G,KAAKisC,OACxBjsC,KAAKs7G,UAAYt7G,KAAKm7E,SAU1BxzE,GAAWA,GAAY,EAED,mBAAXskC,KAA0BA,EAASjsC,KAAK+6G,SAC/B,mBAAT5/B,KAAwBA,EAAOn7E,KAAKm7E,MAE/Cn7E,KAAK2H,SAAWA,EAChB3H,KAAKisC,OAASA,EACdjsC,KAAKm7E,KAAOA,EACZn7E,KAAKi8D,SAAW,EAChBj8D,KAAKy5G,WAAa,EAElBz5G,KAAKk7G,YAAclxB,EACnBhqF,KAAKm7G,cAAgBxzG,EACrB3H,KAAKo7G,YAAcnvE,EACnBjsC,KAAKs7G,UAAYngC,CAmHrB,OAhHIn7E,MAAK62G,cAGD72G,KAAKmyC,KAAK0B,MAAMy9D,eAAetxG,KAAK2iB,MAGf,OAAjB3iB,KAAKg7G,UAELh7G,KAAKg7G,QAAUh7G,KAAKmyC,KAAK0B,MAAMw9D,aAAarxG,KAAK2iB,MAGrD3iB,KAAKu6G,OAASv6G,KAAK8Q,QAAQ8qG,qBAC3B57G,KAAKu6G,OAAO3yF,OAAS5nB,KAAKg7G,QAItBh7G,KAAKu6G,OAAOvsC,QAFZhuE,KAAKg6G,aAEeh6G,KAAKg6G,aAILh6G,KAAKk6G,UAG7Bl6G,KAAKs5G,cAAgBt5G,KAAKu6G,OAAO3yF,OAAOq0C,SAElB,IAAlBj8D,KAAKi8D,WAGLj8D,KAAKi8D,SAAWj8D,KAAKs5G,cACrBt5G,KAAKy5G,WAAkC,IAArBz5G,KAAKs5G,eAGvBt5G,KAAKm7E,MAAmB,KAAX6O,IAEbhqF,KAAKu6G,OAAOp/B,MAAO,GAIU,mBAAtBn7E,MAAKu6G,OAAOnrG,MAEnBpP,KAAKu6G,OAAOsB,YAAY,EAAG77G,KAAK2H,SAAU3H,KAAKi8D,UAO/Cj8D,KAAKu6G,OAAOnrG,MAAM,EAAGpP,KAAK2H,SAAU3H,KAAKi8D,UAG7Cj8D,KAAK0oG,WAAY,EACjB1oG,KAAKu5G,UAAYv5G,KAAKmyC,KAAK+B,KAAKA,KAChCl0C,KAAKw5G,YAAc,EACnBx5G,KAAK05G,SAAW15G,KAAKu5G,UAAYv5G,KAAKy5G,WACtCz5G,KAAK06G,OAAO5hE,SAAS94C,QAIrBA,KAAK65G,iBAAkB,EAEnB75G,KAAKmyC,KAAK0B,MAAMu9D,SAASpxG,KAAK2iB,MAAQ3iB,KAAKmyC,KAAK0B,MAAMu9D,SAASpxG,KAAK2iB,KAAK0sF,cAAe,GAExFrvG,KAAKmyC,KAAK8B,MAAM6nE,OAAO97G,KAAK2iB,IAAK3iB,OAMrCA,KAAKmyC,KAAK0B,MAAMu9D,SAASpxG,KAAK2iB,MAAQ3iB,KAAKmyC,KAAK0B,MAAMu9D,SAASpxG,KAAK2iB,KAAK8hD,QAEzEzkE,KAAKmyC,KAAK0B,MAAM07D,YAAYvvG,KAAK2iB,KACjC3iB,KAAK65G,iBAAkB,GAInB75G,KAAKu6G,SAAWv6G,KAAKmyC,KAAKyM,OAAOsN,UAAuC,IAA3BlsD,KAAKu6G,OAAOpmD,aAEzDn0D,KAAKu6G,OAAOl1B,OAEZrlF,KAAKs5G,cAAgBt5G,KAAKu6G,OAAOt+C,SAEX,IAAlBj8D,KAAKi8D,WAELj8D,KAAKi8D,SAAWj8D,KAAKs5G,cACrBt5G,KAAKy5G,WAAkC,IAArBz5G,KAAKs5G,eAG3Bt5G,KAAKu6G,OAAOf,YAAcx5G,KAAK2H,SAC/B3H,KAAKu6G,OAAOwB,MAAQ/7G,KAAKi7G,OAIrBj7G,KAAKu6G,OAAOtuE,OAFZjsC,KAAKi7G,OAEgB,EAIAj7G,KAAK+6G,QAG9B/6G,KAAK0oG,WAAY,EACjB1oG,KAAKu5G,UAAYv5G,KAAKmyC,KAAK+B,KAAKA,KAChCl0C,KAAKw5G,YAAc,EACnBx5G,KAAK05G,SAAW15G,KAAKu5G,UAAYv5G,KAAKy5G,WACtCz5G,KAAK06G,OAAO5hE,SAAS94C,OAIrBA,KAAK65G,iBAAkB,EAK5B75G,MAaXk3C,QAAS,SAAU8yC,EAAQriF,EAAUskC,EAAQkvC,GAEzC6O,EAASA,GAAU,GACnBriF,EAAWA,GAAY,EACvBskC,EAASA,GAAU,EACC,mBAATkvC,KAAwBA,GAAO,GAE1Cn7E,KAAKqlF,KAAK2E,EAAQriF,EAAUskC,EAAQkvC,GAAM,IAS9C/kC,MAAO,WAECp2C,KAAK0oG,WAAa1oG,KAAKu6G,SAEvBv6G,KAAK00C,QAAS,EACd10C,KAAK25G,eAAiB35G,KAAKw5G,YAC3Bx5G,KAAKglG,WAAahlG,KAAKmyC,KAAK+B,KAAKA,KACjCl0C,KAAKm2C,QAAQ2C,SAAS94C,MACtBA,KAAKgP,SAUbsnC,OAAQ,WAEJ,GAAIt2C,KAAK00C,QAAU10C,KAAKu6G,OACxB,CACI,GAAIv6G,KAAK62G,cACT,CACI,GAAI3yG,GAAIlE,KAAK2H,SAAY3H,KAAK25G,eAAiB,GAE/C35G,MAAKu6G,OAASv6G,KAAK8Q,QAAQ8qG,qBAC3B57G,KAAKu6G,OAAO3yF,OAAS5nB,KAAKg7G,QAItBh7G,KAAKu6G,OAAOvsC,QAFZhuE,KAAKg6G,aAEeh6G,KAAKg6G,aAILh6G,KAAKk6G,UAGzBl6G,KAAKm7E,OAELn7E,KAAKu6G,OAAOp/B,MAAO,GAGU,mBAAtBn7E,MAAKu6G,OAAOnrG,MAEnBpP,KAAKu6G,OAAOsB,YAAY,EAAG33G,EAAGlE,KAAKi8D,UAKnCj8D,KAAKu6G,OAAOnrG,MAAM,EAAGlL,EAAGlE,KAAKi8D,cAKjCj8D,MAAKu6G,OAAOl1B,MAGhBrlF,MAAK0oG,WAAY,EACjB1oG,KAAK00C,QAAS,EACd10C,KAAKu5G,WAAcv5G,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAKglG,WAC9ChlG,KAAKq2C,SAASyC,SAAS94C,QAU/BgP,KAAM,WAEF,GAAIhP,KAAK0oG,WAAa1oG,KAAKu6G,OAEvB,GAAIv6G,KAAK62G,cAEL,GAAgC,mBAArB72G,MAAKu6G,OAAOvrG,KAEnBhP,KAAKu6G,OAAOoB,QAAQ,OAIpB,KACI37G,KAAKu6G,OAAOvrG,KAAK,GAErB,MAAO2M,QAMN3b,MAAK82G,gBAEV92G,KAAKu6G,OAAOnkE,QACZp2C,KAAKu6G,OAAOf,YAAc,EAIlCx5G,MAAK0oG,WAAY,CACjB,IAAIsT,GAAah8G,KAAK45G,aAEK,MAAvB55G,KAAK45G,eAEL55G,KAAK66G,iBAAiB/hE,SAAS94C,KAAK45G,cAAe55G,MAGvDA,KAAK45G,cAAgB,GAEhB55G,KAAK00C,QAEN10C,KAAK26G,OAAO7hE,SAAS94C,KAAMg8G,IAenCC,OAAQ,SAAUhgD,EAAUkf,GAEJ,mBAATA,KAAwBA,GAAO,GAEtCn7E,KAAK00C,SAKT10C,KAAKqlF,KAAK,GAAI,EAAG,EAAGlK,GAEpBn7E,KAAKk8G,OAAOjgD,EAAU,KAY1BkgD,QAAS,SAAUlgD,GAEfj8D,KAAKk8G,OAAOjgD,EAAU,IAa1BigD,OAAQ,SAAUjgD,EAAUhwB,GAExB,GAAKjsC,KAAK0oG,YAAa1oG,KAAK00C,QAAUzI,IAAWjsC,KAAKisC,OAAtD,CAOA,GAFwB,mBAAbgwB,KAA4BA,EAAW,KAE5B,mBAAXhwB,GAGP,WADA1oC,SAAQo0C,KAAK,4CAIjB,IAAIqjC,GAAQh7E,KAAKmyC,KAAKnJ,IAAIgyC,MAAMh7E,MAAM4mC,IAAMqF,OAAQA,GAAUgwB,EAAU75B,EAAOggE,OAAO2B,OAAOC,MAAM,EAEnGhpB,GAAM8nB,WAAW95D,IAAIhpC,KAAKo8G,aAAcp8G,QAU5Co8G,aAAc,WAEVp8G,KAAK86G,eAAehiE,SAAS94C,KAAMA,KAAKisC,QAEpB,IAAhBjsC,KAAKisC,QAELjsC,KAAKgP,QAWb9C,QAAS,SAAU2qC,GAEO,mBAAXA,KAA0BA,GAAS,GAE9C72C,KAAKgP,OAED6nC,EAEA72C,KAAKmyC,KAAK8B,MAAM4C,OAAO72C,OAIvBA,KAAKq5G,WACLr5G,KAAK8Q,QAAU,KACf9Q,KAAKg7G,QAAU,KACfh7G,KAAKg6G,aAAe,KAEpBh6G,KAAKy6G,UAAU9/D,UACf36C,KAAK06G,OAAO//D,UACZ36C,KAAKm2C,QAAQwE,UACb36C,KAAKq2C,SAASsE,UACd36C,KAAK6iG,OAAOloD,UACZ36C,KAAK26G,OAAOhgE,UACZ36C,KAAK46G,OAAOjgE,UACZ36C,KAAK66G,iBAAiBlgE,aAOlCvY,EAAO+nD,MAAMtmF,UAAUsB,YAAci9B,EAAO+nD,MAO5ChhF,OAAOC,eAAeg5B,EAAO+nD,MAAMtmF,UAAW,cAE1CwF,IAAK,WACD,MAAOrJ,MAAKmyC,KAAK0B,MAAMu9D,SAASpxG,KAAK2iB,KAAK0sF,cAUlDlmG,OAAOC,eAAeg5B,EAAO+nD,MAAMtmF,UAAW,aAE1CwF,IAAK,WACD,MAAOrJ,MAAKmyC,KAAK0B,MAAMy9D,eAAetxG,KAAK2iB,QASnDxZ,OAAOC,eAAeg5B,EAAO+nD,MAAMtmF,UAAW,QAE1CwF,IAAK,WAED,MAAQrJ,MAAKi7G,QAAUj7G,KAAKmyC,KAAK8B,MAAMooE,MAI3C/yG,IAAK,SAAUC,GAEXA,EAAQA,GAAS,KAEbA,GAEAvJ,KAAKi7G,QAAS,EAEVj7G,KAAK62G,eAEL72G,KAAKq7G,YAAcr7G,KAAKk6G,SAASI,KAAK/wG,MACtCvJ,KAAKk6G,SAASI,KAAK/wG,MAAQ,GAEtBvJ,KAAK82G,eAAiB92G,KAAKu6G,SAEhCv6G,KAAKq7G,YAAcr7G,KAAKu6G,OAAOtuE,OAC/BjsC,KAAKu6G,OAAOtuE,OAAS,KAKzBjsC,KAAKi7G,QAAS,EAEVj7G,KAAK62G,cAEL72G,KAAKk6G,SAASI,KAAK/wG,MAAQvJ,KAAKq7G,YAE3Br7G,KAAK82G,eAAiB92G,KAAKu6G,SAEhCv6G,KAAKu6G,OAAOtuE,OAASjsC,KAAKq7G,cAIlCr7G,KAAK46G,OAAO9hE,SAAS94C,SAW7BmJ,OAAOC,eAAeg5B,EAAO+nD,MAAMtmF,UAAW,UAE1CwF,IAAK,WACD,MAAOrJ,MAAK+6G,SAGhBzxG,IAAK,SAAUC,GAEPvJ,KAAK62G,eAEL72G,KAAK+6G,QAAUxxG,EACfvJ,KAAKk6G,SAASI,KAAK/wG,MAAQA,GAEtBvJ,KAAK82G,eAAiB92G,KAAKu6G,QAG5BhxG,GAAS,GAAc,GAATA,IAEdvJ,KAAK+6G,QAAUxxG,EACfvJ,KAAKu6G,OAAOtuE,OAAS1iC,MAuBrC64B,EAAO6yB,aAAe,SAAU9iB,GAK5BnyC,KAAKmyC,KAAOA,EAKZnyC,KAAKg4G,cAAgB,GAAI51E,GAAOuW,OAOhC34C,KAAKs8G,YAAa,EAOlBt8G,KAAKi7G,QAAS,EAOdj7G,KAAKu8G,cAAgB,KAOrBv8G,KAAK+6G,QAAU,EAMf/6G,KAAKusG,WAMLvsG,KAAK8Q,QAAU,KAMf9Q,KAAK62G,eAAgB,EAMrB72G,KAAK82G,eAAgB,EAMrB92G,KAAKw8G,SAAU,EAMfx8G,KAAKo5G,iBAAkB,EAMvBp5G,KAAKsvG,aAAc,EAMnBtvG,KAAKy8G,SAAW,IAIpBr6E,EAAO6yB,aAAapxD,WAOhBqyC,KAAM,WAoBF,GAlBIl2C,KAAKmyC,KAAKyM,OAAOozC,KAAOhyF,KAAKmyC,KAAKyM,OAAO2W,YAAa,IAEtDv1D,KAAKy8G,SAAW,IAGfz8G,KAAKmyC,KAAKyM,OAAOsN,UAAYlsD,KAAKmyC,KAAKyM,OAAOozC,KAAQtuF,OAAqB,cAAKA,OAAqB,aAAEg5G,kBAExG18G,KAAKmyC,KAAK2B,MAAMykB,MAAMzhB,gBAAkB92C,KACxCA,KAAKmyC,KAAK2B,MAAMykB,MAAMyS,mBAAqBhrE,KAAK28G,OAChD38G,KAAKmyC,KAAK2B,MAAM/5B,MAAM+8B,gBAAkB92C,KACxCA,KAAKmyC,KAAK2B,MAAM/5B,MAAMiqD,kBAAoBhkE,KAAK28G,OAC/C38G,KAAKsvG,aAAc,GAInBtvG,KAAKsvG,aAAc,EAGnB5rG,OAAqB,aACzB,CAEI,GAAIA,OAAqB,aAAEk5G,gBAAiB,EAIxC,MAFA58G,MAAK62G,eAAgB,OACrB72G,KAAKw8G,SAAU,EAKnB,IAAI94G,OAAqB,aAAEm5G,mBAAoB,EAK3C,MAHA78G,MAAK62G,eAAgB,EACrB72G,KAAK82G,eAAgB,OACrB92G,KAAKw8G,SAAU,GAKvB,GAAM94G,OAAqB,aAEvB,IACI1D,KAAK8Q,QAAU,GAAIpN,QAAqB,aAC1C,MAAO2xF,GACLr1F,KAAK8Q,QAAU,KACf9Q,KAAK62G,eAAgB,EACrB72G,KAAKw8G,SAAU,MAGlB,IAAM94G,OAA2B,mBAElC,IACI1D,KAAK8Q,QAAU,GAAIpN,QAA2B,mBAChD,MAAO2xF,GACLr1F,KAAK8Q,QAAU,KACf9Q,KAAK62G,eAAgB,EACrB72G,KAAKw8G,SAAU,EAIjB94G,OAAc,OAAsB,OAAjB1D,KAAK8Q,UAE1B9Q,KAAK62G,eAAgB,EACrB72G,KAAK82G,eAAgB,EACrB92G,KAAKw8G,SAAU,GAGE,OAAjBx8G,KAAK8Q,UAID9Q,KAAKm6G,WAF8B,mBAA5Bn6G,MAAK8Q,QAAQspG,WAEFp6G,KAAK8Q,QAAQupG,iBAIbr6G,KAAK8Q,QAAQspG,aAGnCp6G,KAAKm6G,WAAWG,KAAK/wG,MAAQ,EAC7BvJ,KAAKm6G,WAAWnsC,QAAQhuE,KAAK8Q,QAAQwwE,eAS7Cq7B,OAAQ,WAEJ,GAAI38G,KAAKsvG,eAAgB,EAMzB,GAAItvG,KAAKmyC,KAAKyM,OAAO2W,YAAa,GAAU7xD,OAAqB,cAAKA,OAAqB,aAAEm5G,mBAAoB,EAG7G78G,KAAKsvG,aAAc,EACnBtvG,KAAKu8G,cAAgB,KACrBv8G,KAAKmyC,KAAK2B,MAAMykB,MAAMzhB,gBAAkB,KACxC92C,KAAKmyC,KAAK2B,MAAMykB,MAAMyS,mBAAqB,KAC3ChrE,KAAKmyC,KAAK2B,MAAM/5B,MAAM+8B,gBAAkB,KACxC92C,KAAKmyC,KAAK2B,MAAM/5B,MAAMiqD,kBAAoB,SAG9C,CAEI,GAAIp8C,GAAS5nB,KAAK8Q,QAAQsc,aAAa,EAAG,EAAG,MAC7CptB,MAAKu8G,cAAgBv8G,KAAK8Q,QAAQ8qG,qBAClC57G,KAAKu8G,cAAc30F,OAASA,EAC5B5nB,KAAKu8G,cAAcvuC,QAAQhuE,KAAK8Q,QAAQwwE,aACxCthF,KAAKu8G,cAAcO,OAAO,KAUlCC,QAAS,WAEL,IAAK,GAAI54G,GAAI,EAAGA,EAAInE,KAAKusG,QAAQloG,OAAQF,IAEjCnE,KAAKusG,QAAQpoG,IAEbnE,KAAKusG,QAAQpoG,GAAG6K,QAW5BwyF,SAAU,WAEN,IAAK,GAAIr9F,GAAI,EAAGA,EAAInE,KAAKusG,QAAQloG,OAAQF,IAEjCnE,KAAKusG,QAAQpoG,IAEbnE,KAAKusG,QAAQpoG,GAAGiyC,SAW5BqrD,UAAW,WAEP,IAAK,GAAIt9F,GAAI,EAAGA,EAAInE,KAAKusG,QAAQloG,OAAQF,IAEjCnE,KAAKusG,QAAQpoG,IAEbnE,KAAKusG,QAAQpoG,GAAGmyC,UAa5BwlE,OAAQ,SAAUn5F,EAAKsxB,GAEnBA,EAAQA,GAAS,IAEjB,IAAI+oE,GAAYh9G,KAAKmyC,KAAK0B,MAAMw9D,aAAa1uF,EAE7C,IAAIq6F,GAEIh9G,KAAKmyC,KAAK0B,MAAMy9D,eAAe3uF,MAAS,EAC5C,CACI3iB,KAAKmyC,KAAK0B,MAAM47D,YAAY9sF,EAAK,cAAc,EAE/C,IAAIm1F,GAAO93G,IAEXA,MAAK8Q,QAAQinG,gBAAgBiF,EAAW,SAAUp1F,GAC9CkwF,EAAK3lE,KAAK0B,MAAM67D,aAAa/sF,EAAKiF,GAC9BqsB,GAEA6jE,EAAKE,cAAcl/D,SAASn2B,EAAKsxB,OAarDz6B,OAAQ,WAEAxZ,KAAKsvG,aAEDtvG,KAAKmyC,KAAKyM,OAAO2W,UAAmC,OAAvBv1D,KAAKu8G,gBAE7Bv8G,KAAKu8G,cAAcU,gBAAkBj9G,KAAKu8G,cAAcW,eAAiBl9G,KAAKu8G,cAAcU,gBAAkBj9G,KAAKu8G,cAAcY,kBAElIn9G,KAAKsvG,aAAc,EACnBtvG,KAAKu8G,cAAgB,KACrBv8G,KAAKmyC,KAAK2B,MAAMykB,MAAMzhB,gBAAkB,KACxC92C,KAAKmyC,KAAK2B,MAAMykB,MAAMyS,mBAAqB,KAKvD,KAAK,GAAI7mE,GAAI,EAAGA,EAAInE,KAAKusG,QAAQloG,OAAQF,IAErCnE,KAAKusG,QAAQpoG,GAAGqV,UAexBwvB,IAAK,SAAUrmB,EAAKspB,EAAQkvC,EAAMnN,GAER,mBAAX/hC,KAA0BA,EAAS,GAC1B,mBAATkvC,KAAwBA,GAAO,GACnB,mBAAZnN,KAA2BA,EAAUhuE,KAAKo5G,gBAErD,IAAInlE,GAAQ,GAAI7R,GAAO+nD,MAAMnqF,KAAKmyC,KAAMxvB,EAAKspB,EAAQkvC,EAAMnN,EAI3D,OAFAhuE,MAAKusG,QAAQjoG,KAAK2vC,GAEXA,GAWXonC,UAAW,SAAS14D,GAEhB,GAAIy4D,GAAc,GAAIh5C,GAAOgoD,YAAYpqF,KAAKmyC,KAAMxvB,EAEpD,OAAOy4D,IAWXvkC,OAAQ,SAAU5C,GAId,IAFA,GAAI9vC,GAAInE,KAAKusG,QAAQloG,OAEdF,KAEH,GAAInE,KAAKusG,QAAQpoG,KAAO8vC,EAIpB,MAFAj0C,MAAKusG,QAAQpoG,GAAG+H,SAAQ,GACxBlM,KAAKusG,QAAQ1/F,OAAO1I,EAAG,IAChB,CAIf,QAAO,GAYXi5G,YAAa,SAAUz6F,GAKnB,IAHA,GAAIxe,GAAInE,KAAKusG,QAAQloG,OACjB2J,EAAU,EAEP7J,KAECnE,KAAKusG,QAAQpoG,GAAGwe,MAAQA,IAExB3iB,KAAKusG,QAAQpoG,GAAG+H,SAAQ,GACxBlM,KAAKusG,QAAQ1/F,OAAO1I,EAAG,GACvB6J,IAIR,OAAOA,IAaXq3E,KAAM,SAAU1iE,EAAKspB,EAAQkvC,GAEzB,GAAIlnC,GAAQj0C,KAAKgpC,IAAIrmB,EAAKspB,EAAQkvC,EAIlC,OAFAlnC,GAAMoxC,OAECpxC,GAUXmiB,QAAS,WAEL,IAAIp2D,KAAKi7G,OAAT,CAKAj7G,KAAKi7G,QAAS,EAEVj7G,KAAK62G,gBAEL72G,KAAKq7G,YAAcr7G,KAAKm6G,WAAWG,KAAK/wG,MACxCvJ,KAAKm6G,WAAWG,KAAK/wG,MAAQ,EAIjC,KAAK,GAAIpF,GAAI,EAAGA,EAAInE,KAAKusG,QAAQloG,OAAQF,IAEjCnE,KAAKusG,QAAQpoG,GAAG2yG,gBAEhB92G,KAAKusG,QAAQpoG,GAAGk4G,MAAO,KAYnChmD,UAAW,WAEP,GAAKr2D,KAAKi7G,SAAUj7G,KAAKs8G,WAAzB,CAKAt8G,KAAKi7G,QAAS,EAEVj7G,KAAK62G,gBAEL72G,KAAKm6G,WAAWG,KAAK/wG,MAAQvJ,KAAKq7G,YAItC,KAAK,GAAIl3G,GAAI,EAAGA,EAAInE,KAAKusG,QAAQloG,OAAQF,IAEjCnE,KAAKusG,QAAQpoG,GAAG2yG,gBAEhB92G,KAAKusG,QAAQpoG,GAAGk4G,MAAO,KAWnCnwG,QAAS,WAELlM,KAAK+8G,SAEL,KAAK,GAAI54G,GAAI,EAAGA,EAAInE,KAAKusG,QAAQloG,OAAQF,IAEjCnE,KAAKusG,QAAQpoG,IAEbnE,KAAKusG,QAAQpoG,GAAG+H,SAIxBlM,MAAKusG,WACLvsG,KAAKg4G,cAAcr9D,YAM3BvY,EAAO6yB,aAAapxD,UAAUsB,YAAci9B,EAAO6yB,aAMnD9rD,OAAOC,eAAeg5B,EAAO6yB,aAAapxD,UAAW,QAEjDwF,IAAK,WAED,MAAOrJ,MAAKi7G,QAIhB3xG,IAAK,SAAUC,GAIX,GAFAA,EAAQA,GAAS,KAGjB,CACI,GAAIvJ,KAAKi7G,OAEL,MAGJj7G,MAAKs8G,YAAa,EAClBt8G,KAAKo2D,cAGT,CACI,IAAKp2D,KAAKi7G,OAEN,MAGJj7G,MAAKs8G,YAAa,EAClBt8G,KAAKq2D,gBAUjBltD,OAAOC,eAAeg5B,EAAO6yB,aAAapxD,UAAW,UAEjDwF,IAAK,WAED,MAAIrJ,MAAK62G,cAEE72G,KAAKm6G,WAAWG,KAAK/wG,MAIrBvJ,KAAK+6G,SAKpBzxG,IAAK,SAAUC,GAIX,GAFAvJ,KAAK+6G,QAAUxxG,EAEXvJ,KAAK62G,cAEL72G,KAAKm6G,WAAWG,KAAK/wG,MAAQA,MAK7B,KAAK,GAAIpF,GAAI,EAAGA,EAAInE,KAAKusG,QAAQloG,OAAQF,IAEjCnE,KAAKusG,QAAQpoG,GAAG2yG,gBAEhB92G,KAAKusG,QAAQpoG,GAAG8nC,OAASjsC,KAAKusG,QAAQpoG,GAAG8nC,OAAS1iC,MAqBtE64B,EAAO+C,YAYHyf,cAAe,SAAU23C,EAAS3mE,EAAYvxB,GAE1C,GAAe,MAAXk4F,EACA,MAAO,KAGe,oBAAf3mE,KAA8BA,EAAa,GAChC,mBAAXvxB,KAA0BA,EAASk4F,EAAQl4F,OAEtD,IAAIg5G,GAAcznF,EAAa1zB,KAAKmoC,MAAMnoC,KAAK4iC,SAAWzgC,EAC1D,OAAOk4F,GAAQ8gB,IAAgB,MAcnC5gB,iBAAkB,SAAUF,EAAS3mE,EAAYvxB,GAE7C,GAAe,MAAXk4F,EACA,MAAO,KAGe,oBAAf3mE,KAA8BA,EAAa,GAChC,mBAAXvxB,KAA0BA,EAASk4F,EAAQl4F,OAEtD,IAAIg5G,GAAcznF,EAAa1zB,KAAKmoC,MAAMnoC,KAAK4iC,SAAWzgC,EAC1D,IAAIg5G,EAAc9gB,EAAQl4F,OAC1B,CACI,GAAI2J,GAAUuuF,EAAQ1vF,OAAOwwG,EAAa,EAC1C,OAAOrvG,GAAQ,GAIf,MAAO,OAYfw3B,QAAS,SAAU5/B,GAEf,IAAK,GAAIzB,GAAIyB,EAAMvB,OAAS,EAAGF,EAAI,EAAGA,IACtC,CACI,GAAIU,GAAI3C,KAAKmoC,MAAMnoC,KAAK4iC,UAAY3gC,EAAI,IACpC+yB,EAAOtxB,EAAMzB,EACjByB,GAAMzB,GAAKyB,EAAMf,GACjBe,EAAMf,GAAKqyB,EAGf,MAAOtxB,IAWXw/B,gBAAiB,SAAUx/B,GAIvB,IAAK,GAFDqR,GAAS,GAAInV,OAAM8D,EAAM,GAAGvB,QAEvBF,EAAI,EAAGA,EAAIyB,EAAM,GAAGvB,OAAQF,IACrC,CACI8S,EAAO9S,GAAK,GAAIrC,OAAM8D,EAAMvB,OAAS,EAErC,KAAK,GAAIQ,GAAIe,EAAMvB,OAAS,EAAGQ,EAAI,GAAIA,IAEnCoS,EAAO9S,GAAGU,GAAKe,EAAMf,GAAGV,GAIhC,MAAO8S,IAaXsuB,aAAc,SAAU1+B,EAAQy+B,GAO5B,GALyB,gBAAdA,KAEPA,GAAcA,EAAY,IAAO,KAAO,KAG1B,KAAdA,GAAkC,OAAdA,GAAoC,eAAdA,EAE1Cz+B,EAASu7B,EAAO+C,WAAWC,gBAAgBv+B,GAC3CA,EAASA,EAAOqqB,cAEf,IAAkB,MAAdoU,GAAmC,MAAdA,GAAmC,gBAAdA,EAE/Cz+B,EAASA,EAAOqqB,UAChBrqB,EAASu7B,EAAO+C,WAAWC,gBAAgBv+B,OAE1C,IAA4B,MAAxB3E,KAAKirB,IAAImY,IAAoC,cAAdA,EACxC,CACI,IAAK,GAAInhC,GAAI,EAAGA,EAAI0C,EAAOxC,OAAQF,IAE/B0C,EAAO1C,GAAG+sB,SAGdrqB,GAASA,EAAOqqB,UAGpB,MAAOrqB,IAaXgzF,YAAa,SAAUtwF,EAAOqwF,GAE1B,IAAKA,EAAIv1F,OAEL,MAAOi5G,IAEN,IAAmB,IAAf1jB,EAAIv1F,QAAgBkF,EAAQqwF,EAAI,GAErC,MAAOA,GAAI,EAIf,KADA,GAAIz1F,GAAI,EACDy1F,EAAIz1F,GAAKoF,GACZpF,GAGJ,IAAIo5G,GAAM3jB,EAAIz1F,EAAI,GACdq5G,EAAQr5G,EAAIy1F,EAAIv1F,OAAUu1F,EAAIz1F,GAAKkoC,OAAOoxE,iBAE9C,OAA2Bl0G,GAAQg0G,GAA1BC,EAAOj0G,EAA2Bi0G,EAAOD,GAYtDl3G,OAAQ,SAAUT,GAEd,GAAI4kC,GAAI5kC,EAAM2jE,OAGd,OAFA3jE,GAAMtB,KAAKkmC,GAEJA,GAaXywD,YAAa,SAAU7rF,EAAOtB,GAI1B,IAAK,GAFDmJ,MAEK9S,EAAIiL,EAAYtB,GAAL3J,EAAUA,IAE1B8S,EAAO3S,KAAKH,EAGhB,OAAO8S,IAqCXikF,gBAAiB,SAAS9rF,EAAOtB,EAAK6rB,GAElCvqB,GAASA,GAAS,CAGlB,IAAInM,SAAc6K,EAEJ,YAAT7K,GAA8B,WAATA,IAAsB02B,GAAQA,EAAK7rB,KAASsB,IAElEtB,EAAM6rB,EAAO,MAGjBA,EAAe,MAARA,EAAe,GAAMA,GAAQ,EAExB,OAAR7rB,GAEAA,EAAMsB,EACNA,EAAQ,GAIRtB,GAAOA,GAAO,CASlB,KAJA,GAAInB,GAAQ,GACRtI,EAASnC,KAAKgT,IAAIktB,EAAOlgC,KAAKw6F,mBAAmB5uF,EAAMsB,IAAUuqB,GAAQ,IAAK,GAC9E1iB,EAAS,GAAInV,OAAMuC,KAEdsI,EAAQtI,GAEb4S,EAAOtK,GAASyC,EAChBA,GAASuqB,CAGb,OAAO1iB,KAuBfmrB,EAAOgC,MAAMgxB,MAAQ,SAAUjjB,GAK3BnyC,KAAKmyC,KAAOA,EAKZnyC,KAAK8zB,OAAS,KAKd9zB,KAAK09G,IAAM,KAKX19G,KAAKqT,OAAS,KAKdrT,KAAK8Q,QAAU,KAMf9Q,KAAK6T,KAAO,eAKZ7T,KAAK29G,YAAc,IAKnB39G,KAAKmV,WAAa,GAKlBnV,KAAK49G,cAAe,EAMpB59G,KAAK2sF,SAAW,EAMhB3sF,KAAK4sF,SAAW,EAMhB5sF,KAAK69G,aAAe,EAKpB79G,KAAKwJ,OAAQ,GAIjB44B,EAAOgC,MAAMgxB,MAAMvxD,WAQfqyC,KAAM,WAEEl2C,KAAKmyC,KAAK6F,aAAe5V,EAAOG,OAEhCviC,KAAK8Q,QAAU9Q,KAAKmyC,KAAKrhC,SAIzB9Q,KAAK09G,IAAM19G,KAAKmyC,KAAKwB,KAAKopC,WAAW/8E,KAAKmyC,KAAKhrC,MAAOnH,KAAKmyC,KAAK/qC,QAChEpH,KAAK8zB,OAAS9zB,KAAKmyC,KAAKwB,KAAK/T,MAAM,EAAG,EAAG5/B,KAAK09G,KAC9C19G,KAAKmyC,KAAK7pC,MAAMkE,SAASxM,KAAK8zB,QAE9B9zB,KAAKqT,OAAS+uB,EAAO4b,OAAO3xC,OAAOrM,KAAKmyC,KAAKhrC,MAAOnH,KAAKmyC,KAAK/qC,OAAQ,IAAI,GAC1EpH,KAAK8Q,QAAU9Q,KAAKqT,OAAOG,WAAW,QAU9C4jC,UAAW,WAEHp3C,KAAKwJ,OAASxJ,KAAK8zB,SAEnB9zB,KAAK09G,IAAI5tF,QACT9vB,KAAK09G,IAAIn/B,KAAKv+E,KAAKqT,OAAQ,EAAG,GAE9BrT,KAAK8Q,QAAQwE,UAAU,EAAG,EAAGtV,KAAKmyC,KAAKhrC,MAAOnH,KAAKmyC,KAAK/qC,QACxDpH,KAAKwJ,OAAQ,IAUrB6e,MAAO,WAECroB,KAAK8Q,SAEL9Q,KAAK8Q,QAAQwE,UAAU,EAAG,EAAGtV,KAAKmyC,KAAKhrC,MAAOnH,KAAKmyC,KAAK/qC,QAGxDpH,KAAK8zB,QAEL9zB,KAAK09G,IAAI5tF,SAejB1gB,MAAO,SAAU7K,EAAGC,EAAG4hB,EAAOu3F,GAET,gBAANp5G,KAAkBA,EAAI,GAChB,gBAANC,KAAkBA,EAAI,GACjC4hB,EAAQA,GAAS,mBACU,mBAAhBu3F,KAA+BA,EAAc,GAExD39G,KAAK2sF,SAAWpoF,EAChBvE,KAAK4sF,SAAWpoF,EAChBxE,KAAK89G,aAAe13F,EACpBpmB,KAAK69G,aAAe79G,KAAK8Q,QAAQI,YACjClR,KAAK29G,YAAcA,EAEnB39G,KAAKwJ,OAAQ,EAEbxJ,KAAK8Q,QAAQynB,OACbv4B,KAAK8Q,QAAQM,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACzCpR,KAAK8Q,QAAQyE,YAAc6Q,EAC3BpmB,KAAK8Q,QAAQ6E,UAAYyQ,EACzBpmB,KAAK8Q,QAAQ+C,KAAO7T,KAAK6T,KACzB7T,KAAK8Q,QAAQI,YAAc,GAU/BlC,KAAM,WAEFhP,KAAK8Q,QAAQ8nB,UACb54B,KAAK8Q,QAAQI,YAAclR,KAAK69G,cAUpC/mG,KAAM,WAIF,IAAK,GAFDvS,GAAIvE,KAAK2sF,SAEJxoF,EAAI,EAAGA,EAAIH,UAAUK,OAAQF,IAE9BnE,KAAK49G,eAEL59G,KAAK8Q,QAAQ6E,UAAY,aACzB3V,KAAK8Q,QAAQiF,SAAS/R,UAAUG,GAAII,EAAI,EAAGvE,KAAK4sF,SAAW,GAC3D5sF,KAAK8Q,QAAQ6E,UAAY3V,KAAK89G,cAGlC99G,KAAK8Q,QAAQiF,SAAS/R,UAAUG,GAAII,EAAGvE,KAAK4sF,UAE5CroF,GAAKvE,KAAK29G,WAGd39G,MAAK4sF,UAAY5sF,KAAKmV,YAa1B4oG,UAAW,SAAU9pE,EAAO1vC,EAAGC,EAAG4hB,GAE9BpmB,KAAKoP,MAAM7K,EAAGC,EAAG4hB,GACjBpmB,KAAK8W,KAAK,UAAYm9B,EAAMtxB,IAAM,YAAcsxB,EAAM9B,KAAK8B,MAAMq7D,aACjEtvG,KAAK8W,KAAK,cAAgB9W,KAAKmyC,KAAK0B,MAAM09D,aAAat9D,EAAMtxB,KAAO,sBAAwBsxB,EAAM4lE,iBAClG75G,KAAK8W,KAAK,YAAcm9B,EAAMwnE,UAAY,cAAgBxnE,EAAMo7D,YAChErvG,KAAK8W,KAAK,mBAAqBm9B,EAAMqlE,cAAgB,aAAerlE,EAAMy0D,WAC1E1oG,KAAK8W,KAAK,SAAWm9B,EAAMulE,aAC3Bx5G,KAAK8W,KAAK,WAAam9B,EAAMhI,OAAS,WAAagI,EAAMooE,MACzDr8G,KAAK8W,KAAK,aAAem9B,EAAM4iE,cAAgB,WAAa5iE,EAAM6iE,eAEtC,KAAxB7iE,EAAM2lE,gBAEN55G,KAAK8W,KAAK,WAAam9B,EAAM2lE,cAAgB,cAAgB3lE,EAAMgoB,SAAW,SAAWhoB,EAAMwlE,WAAa,KAC5Gz5G,KAAK8W,KAAK,UAAYm9B,EAAMolE,QAAQplE,EAAM2lE,eAAexqG,MAAQ,UAAY6kC,EAAMolE,QAAQplE,EAAM2lE,eAAe5qG,MAChHhP,KAAK8W,KAAK,aAAem9B,EAAMtsC,WAGnC3H,KAAKgP,QAaTgvG,WAAY,SAAUpqE,EAAQrvC,EAAGC,EAAG4hB,GAEhCpmB,KAAKoP,MAAM7K,EAAGC,EAAG4hB,GACjBpmB,KAAK8W,KAAK,WAAa88B,EAAOzsC,MAAQ,MAAQysC,EAAOxsC,OAAS,KAC9DpH,KAAK8W,KAAK,MAAQ88B,EAAOrvC,EAAI,OAASqvC,EAAOpvC,GAEzCovC,EAAO/oC,QAEP7K,KAAK8W,KAAK,aAAe88B,EAAO/oC,OAAOtG,EAAI,OAASqvC,EAAO/oC,OAAOrG,EAAI,OAASovC,EAAO/oC,OAAO1D,MAAQ,OAASysC,EAAO/oC,OAAOzD,QAGhIpH,KAAK8W,KAAK,WAAa88B,EAAOnxC,KAAK8B,EAAI,OAASqvC,EAAOnxC,KAAK+B,EAAI,OAASovC,EAAOnxC,KAAK0E,MAAQ,OAASysC,EAAOnxC,KAAK2E,QAClHpH,KAAKgP,QAaTm3F,MAAO,SAAUA,EAAO5hG,EAAGC,EAAG4hB,GAE1BpmB,KAAKoP,MAAM7K,EAAGC,EAAG4hB,GACjBpmB,KAAK8W,KAAK,mBAAqBqvF,EAAMM,QAAU,aAAeN,EAAMO,QAAU,KAC9E1mG,KAAK8W,KAAK,cAAgBqvF,EAAMjuD,KAAO,cAAgBiuD,EAAMlqC,UAC7Dj8D,KAAK8W,KAAK,WAAaqvF,EAAMzxD,OAAS,YAAcyxD,EAAM9hG,QAC1DrE,KAAKgP,QAcTqtC,QAAS,SAAUA,EAAS4hE,EAAUC,EAAWC,EAAS/3F,GAEvC,MAAXi2B,IAKoB,mBAAb4hE,KAA4BA,GAAW,GAClDC,EAAYA,GAAa,oBACzBC,EAAUA,GAAW,qBAEjBF,KAAa,GAAQ5hE,EAAQuf,QAAS,KAK1C57D,KAAKoP,MAAMitC,EAAQ93C,EAAG83C,EAAQ73C,EAAI,IAAK4hB,GACvCpmB,KAAK8Q,QAAQqpB,YACbn6B,KAAK8Q,QAAQ0pB,IAAI6hB,EAAQ93C,EAAG83C,EAAQ73C,EAAG63C,EAAQ2a,OAAOvvD,OAAQ,EAAa,EAAVvF,KAAKC,IAIlEnC,KAAK8Q,QAAQ6E,UAFb0mC,EAAQpD,OAEiBilE,EAIAC,EAG7Bn+G,KAAK8Q,QAAQgD,OACb9T,KAAK8Q,QAAQwpB,YAGbt6B,KAAK8Q,QAAQqpB,YACbn6B,KAAK8Q,QAAQspB,OAAOiiB,EAAQ4sB,aAAa1kE,EAAG83C,EAAQ4sB,aAAazkE,GACjExE,KAAK8Q,QAAQupB,OAAOgiB,EAAQ10C,SAASpD,EAAG83C,EAAQ10C,SAASnD,GACzDxE,KAAK8Q,QAAQkE,UAAY,EACzBhV,KAAK8Q,QAAQkD,SACbhU,KAAK8Q,QAAQwpB,YAGbt6B,KAAK8W,KAAK,OAASulC,EAAQn2C,GAAK,YAAcm2C,EAAQpD,QACtDj5C,KAAK8W,KAAK,YAAculC,EAAQ+hE,OAAS,aAAe/hE,EAAQgiE,QAChEr+G,KAAK8W,KAAK,aAAeulC,EAAQ93C,EAAI,cAAgB83C,EAAQ73C,GAC7DxE,KAAK8W,KAAK,aAAeulC,EAAQ4f,SAAW,OAC5Cj8D,KAAK8W,KAAK,YAAculC,EAAQsf,OAAS,WAAatf,EAAQuf,MAC9D57D,KAAKgP,UAaTsvG,gBAAiB,SAAUxqF,EAAQvvB,EAAGC,EAAG4hB,GAErCpmB,KAAKoP,MAAM7K,EAAGC,EAAG4hB,GACjBpmB,KAAK8W,KAAK,kBAAoBgd,EAAO3sB,MAAQ,MAAQ2sB,EAAO1sB,OAAS,KACrEpH,KAAK8W,KAAK,MAAQgd,EAAOggB,MAAM2jC,WAAWn7B,QAAQ,GAAK,OAASxoB,EAAOggB,MAAM4jC,WAAWp7B,QAAQ,IAChGt8C,KAAK8W,KAAK,SAAWgd,EAAOggB,MAAMikC,cAAgB,cAAgBjkD,EAAOggB,MAAMulC,eAAe/8B,QAAQ,IACtGt8C,KAAK8W,KAAK,SAAWgd,EAAOggB,MAAM6jC,cAAgB,cAAgB7jD,EAAOggB,MAAM6iC,eAAer6B,QAAQ,IACtGt8C,KAAK8W,KAAK,cAAgBgd,EAAOggB,MAAMqlC,WAAa,cAAgBrlD,EAAOggB,MAAMwlC,WACjFt5E,KAAKgP,QAaT2T,IAAK,SAAUA,EAAKpe,EAAGC,EAAG4hB,GAEtBpmB,KAAKoP,MAAM7K,EAAGC,EAAG4hB,EAAO,KAExBpmB,KAAK8W,KAAK,OAAQ6L,EAAIy5C,QAAS,UAAWz5C,EAAIg5C,QAC9C37D,KAAK8W,KAAK,eAAgB6L,EAAI85C,cAAe,gBAAiB95C,EAAI+5C,gBAClE18D,KAAK8W,KAAK,aAAc6L,EAAIq5C,SAAS1f,QAAQ,GAAI,YAAa35B,EAAIs5C,SAAS3f,QAAQ,IAEnFt8C,KAAKgP,QAYTuvG,UAAW,SAAUh6G,EAAGC,EAAG4hB,GAEvBpmB,KAAKoP,MAAM7K,EAAGC,EAAG4hB,GACjBpmB,KAAK8W,KAAK,SACV9W,KAAK8W,KAAK,MAAQ9W,KAAKmyC,KAAK2B,MAAMvvC,EAAI,OAASvE,KAAKmyC,KAAK2B,MAAMtvC,GAC/DxE,KAAK8W,KAAK,YAAc9W,KAAKmyC,KAAK2B,MAAMsqE,OAAS,aAAep+G,KAAKmyC,KAAK2B,MAAMuqE,QAChFr+G,KAAK8W,KAAK,YAAc9W,KAAKmyC,KAAK2B,MAAM1tC,MAAM7B,EAAE+3C,QAAQ,GAAK,aAAet8C,KAAKmyC,KAAK2B,MAAM1tC,MAAM7B,EAAE+3C,QAAQ,IAC5Gt8C,KAAK8W,KAAK,aAAe9W,KAAKmyC,KAAK2B,MAAMid,cAAcuX,QAAU,cAAgBtoE,KAAKmyC,KAAK2B,MAAMid,cAAcwX,SAC/GvoE,KAAKgP,QAYTwvG,aAAc,SAAU1qF,EAAQ1N,EAAOq4F,GAEnC,GAAI5zG,GAASipB,EAAOvpB,WAEpBM,GAAOtG,GAAKvE,KAAKmyC,KAAKyB,OAAOrvC,EAC7BsG,EAAOrG,GAAKxE,KAAKmyC,KAAKyB,OAAOpvC,EAE7BxE,KAAK0+G,UAAU7zG,EAAQub,EAAOq4F,IAWlCE,aAAc,SAASpjC,EAAMn1D,EAAOq4F,GAChC,GAAI53B,GAAWtL,EAAKsL,QACpBA,GAASl6C,QAAQ,SAASiyE,GACtB5+G,KAAK0+G,UAAUE,EAASx4F,EAAOq4F,IAChCz+G,OAaP6+G,WAAY,SAAU/qF,EAAQvvB,EAAGC,EAAG4hB,GAEhCpmB,KAAKoP,MAAM7K,EAAGC,EAAG4hB,GAEjBpmB,KAAK8W,KAAK,aAAoBgd,EAAO3sB,MAAQ,MAAQ2sB,EAAO1sB,OAAS,aAAe0sB,EAAO7nB,OAAO1H,EAAI,MAAQuvB,EAAO7nB,OAAOzH,GAC5HxE,KAAK8W,KAAK,MAAQgd,EAAOvvB,EAAE+3C,QAAQ,GAAK,OAASxoB,EAAOtvB,EAAE83C,QAAQ,IAClEt8C,KAAK8W,KAAK,UAAYgd,EAAOxtB,MAAMg2C,QAAQ,GAAK,cAAgBxoB,EAAO/rB,SAASu0C,QAAQ,IACxFt8C,KAAK8W,KAAK,YAAcgd,EAAO7rB,QAAU,eAAiB6rB,EAAOgrF,UAEjE9+G,KAAKgP,QAaT+vG,aAAc,SAAUjrF,EAAQvvB,EAAGC,EAAG4hB,GAElCpmB,KAAKoP,MAAM7K,EAAGC,EAAG4hB,EAAO,KAEpB0N,EAAOzW,MAEPrd,KAAK8W,KAAKgd,EAAOzW,MAGrBrd,KAAK8W,KAAK,KAAMgd,EAAOvvB,EAAE+3C,QAAQ,GAAI,KAAMxoB,EAAOtvB,EAAE83C,QAAQ,IAC5Dt8C,KAAK8W,KAAK,SAAUgd,EAAOnsB,SAASpD,EAAE+3C,QAAQ,GAAI,SAAUxoB,EAAOnsB,SAASnD,EAAE83C,QAAQ,IACtFt8C,KAAK8W,KAAK,WAAYgd,EAAOse,MAAM7tC,EAAE+3C,QAAQ,GAAI,WAAYxoB,EAAOse,MAAM5tC,EAAE83C,QAAQ,IAEpFt8C,KAAKgP,QAaTgwG,SAAU,SAAUloG,EAAMvS,EAAGC,EAAG4hB,GAE5BpmB,KAAKoP,MAAM7K,EAAGC,EAAG4hB,EAAO,IACxBpmB,KAAK8W,KAAK,WAAYA,EAAK1H,MAAM7K,EAAE+3C,QAAQ,GAAI,WAAYxlC,EAAK1H,MAAM5K,EAAE83C,QAAQ,IAChFt8C,KAAK8W,KAAK,SAAUA,EAAKhJ,IAAIvJ,EAAE+3C,QAAQ,GAAI,SAAUxlC,EAAKhJ,IAAItJ,EAAE83C,QAAQ,IACxEt8C,KAAK8W,KAAK,UAAWA,EAAKzS,OAAOi4C,QAAQ,GAAI,SAAUxlC,EAAKxQ,OAC5DtG,KAAKgP,QAaTyvE,MAAO,SAAUl6E,EAAGC,EAAG4hB,EAAOtO,GAE1BA,EAAOA,GAAQ,EAEf9X,KAAKoP,QACLpP,KAAK8Q,QAAQ6E,UAAYyQ,EACzBpmB,KAAK8Q,QAAQ2F,SAASlS,EAAGC,EAAGsT,EAAMA,GAClC9X,KAAKgP,QAaT24C,KAAM,SAAUwK,EAAQ/rC,EAAOq4F,EAAQQ,GAEb,mBAAXR,KAA0BA,GAAS,GACrB,mBAAdQ,KAA6BA,EAAY,GAEpD74F,EAAQA,GAAS,oBAEjBpmB,KAAKoP,QAELpP,KAAK8Q,QAAQ6E,UAAYyQ,EACzBpmB,KAAK8Q,QAAQyE,YAAc6Q,EAEvB+rC,YAAkB/vB,GAAOl7B,WAA2B,IAAd+3G,EAElCR,EAEAz+G,KAAK8Q,QAAQ2F,SAAS07C,EAAO5tD,EAAIvE,KAAKmyC,KAAKyB,OAAOrvC,EAAG4tD,EAAO3tD,EAAIxE,KAAKmyC,KAAKyB,OAAOpvC,EAAG2tD,EAAOhrD,MAAOgrD,EAAO/qD,QAIzGpH,KAAK8Q,QAAQypB,WAAW43B,EAAO5tD,EAAIvE,KAAKmyC,KAAKyB,OAAOrvC,EAAG4tD,EAAO3tD,EAAIxE,KAAKmyC,KAAKyB,OAAOpvC,EAAG2tD,EAAOhrD,MAAOgrD,EAAO/qD,QAG1G+qD,YAAkB/vB,GAAO4E,QAAwB,IAAdi4E,GAExCj/G,KAAK8Q,QAAQqpB,YACbn6B,KAAK8Q,QAAQ0pB,IAAI23B,EAAO5tD,EAAIvE,KAAKmyC,KAAKyB,OAAOrvC,EAAG4tD,EAAO3tD,EAAIxE,KAAKmyC,KAAKyB,OAAOpvC,EAAG2tD,EAAO1qD,OAAQ,EAAa,EAAVvF,KAAKC,IAAQ,GAC9GnC,KAAK8Q,QAAQwpB,YAETmkF,EAEAz+G,KAAK8Q,QAAQgD,OAIb9T,KAAK8Q,QAAQkD,UAGZm+C,YAAkB/vB,GAAOn+B,OAAuB,IAAdg7G,EAEvCj/G,KAAK8Q,QAAQ2F,SAAS07C,EAAO5tD,EAAIvE,KAAKmyC,KAAKyB,OAAOrvC,EAAG4tD,EAAO3tD,EAAIxE,KAAKmyC,KAAKyB,OAAOpvC,EAAG,EAAG,IAElF2tD,YAAkB/vB,GAAOwK,MAAsB,IAAdqyE,KAEtCj/G,KAAK8Q,QAAQkE,UAAY,EACzBhV,KAAK8Q,QAAQqpB,YACbn6B,KAAK8Q,QAAQspB,OAAQ+3B,EAAO/iD,MAAM7K,EAAI,GAAOvE,KAAKmyC,KAAKyB,OAAOrvC,EAAI4tD,EAAO/iD,MAAM5K,EAAI,GAAOxE,KAAKmyC,KAAKyB,OAAOpvC,GAC3GxE,KAAK8Q,QAAQupB,OAAQ83B,EAAOrkD,IAAIvJ,EAAI,GAAOvE,KAAKmyC,KAAKyB,OAAOrvC,EAAI4tD,EAAOrkD,IAAItJ,EAAI,GAAOxE,KAAKmyC,KAAKyB,OAAOpvC,GACvGxE,KAAK8Q,QAAQwpB,YACbt6B,KAAK8Q,QAAQkD,UAGjBhU,KAAKgP,QAYT0vG,UAAW,SAAUvsD,EAAQ/rC,EAAOq4F,GAEV,mBAAXA,KAA0BA,GAAS,GAE9Cr4F,EAAQA,GAAS,uBAEjBpmB,KAAKoP,QAEDqvG,GAEAz+G,KAAK8Q,QAAQ6E,UAAYyQ,EACzBpmB,KAAK8Q,QAAQ2F,SAAS07C,EAAO5tD,EAAIvE,KAAKmyC,KAAKyB,OAAOrvC,EAAG4tD,EAAO3tD,EAAIxE,KAAKmyC,KAAKyB,OAAOpvC,EAAG2tD,EAAOhrD,MAAOgrD,EAAO/qD,UAIzGpH,KAAK8Q,QAAQyE,YAAc6Q,EAC3BpmB,KAAK8Q,QAAQypB,WAAW43B,EAAO5tD,EAAIvE,KAAKmyC,KAAKyB,OAAOrvC,EAAG4tD,EAAO3tD,EAAIxE,KAAKmyC,KAAKyB,OAAOpvC,EAAG2tD,EAAOhrD,MAAOgrD,EAAO/qD,SAG/GpH,KAAKgP,QAcTmE,KAAM,SAAUA,EAAM5O,EAAGC,EAAG4hB,EAAOvS,GAE/BuS,EAAQA,GAAS,mBACjBvS,EAAOA,GAAQ,eAEf7T,KAAKoP,QACLpP,KAAK8Q,QAAQ+C,KAAOA,EAEhB7T,KAAK49G,eAEL59G,KAAK8Q,QAAQ6E,UAAY,aACzB3V,KAAK8Q,QAAQiF,SAAS5C,EAAM5O,EAAI,EAAGC,EAAI,IAG3CxE,KAAK8Q,QAAQ6E,UAAYyQ,EACzBpmB,KAAK8Q,QAAQiF,SAAS5C,EAAM5O,EAAGC,GAE/BxE,KAAKgP,QAWTkwG,SAAU,SAAUC,EAAU/4F,GAE1BA,EAAQA,GAAS,oBAEjBpmB,KAAKoP,OAEL,IAAIvE,GAASs0G,EAASt0G,MAEtB,IAA8B,IAA1Bs0G,EAASpgB,MAAM16F,OACnB,CACIrE,KAAK8Q,QAAQyE,YAAc6Q,EAC3BpmB,KAAK8Q,QAAQypB,WAAW1vB,EAAOtG,EAAGsG,EAAOrG,EAAGqG,EAAO1D,MAAO0D,EAAOzD,QACjEpH,KAAKmT,KAAK,SAAWgsG,EAAS5iB,QAAQl4F,OAAQwG,EAAOtG,EAAI,EAAGsG,EAAOrG,EAAI,GAAI,eAAgB,gBAE3FxE,KAAK8Q,QAAQyE,YAAc,cAE3B,KAAK,GAAIpR,GAAI,EAAGA,EAAIg7G,EAAS5iB,QAAQl4F,OAAQF,IAEzCnE,KAAK8Q,QAAQypB,WAAW4kF,EAAS5iB,QAAQp4F,GAAGI,EAAG46G,EAAS5iB,QAAQp4F,GAAGK,EAAG26G,EAAS5iB,QAAQp4F,GAAGgD,MAAOg4G,EAAS5iB,QAAQp4F,GAAGiD,YAKzH,KAAK,GAAIjD,GAAI,EAAGA,EAAIg7G,EAASpgB,MAAM16F,OAAQF,IAEvCnE,KAAKk/G,SAASC,EAASpgB,MAAM56F,GAIrCnE,MAAKgP,QAcTslD,KAAM,SAAUxgC,EAAQ1N,EAAOq4F,GAEvB3qF,EAAOwgC,OAEPt0D,KAAKoP,QAED0kB,EAAOwgC,KAAKrxD,OAASm/B,EAAO0d,QAAQC,OAEpC3d,EAAO0d,QAAQi8B,OAAOqjC,KAAKn0G,OAAOjL,KAAK8Q,QAASgjB,EAAOwgC,KAAMluC,EAAOq4F,GAE/D3qF,EAAOwgC,KAAKrxD,OAASm/B,EAAO0d,QAAQu/D,MAEzCj9E,EAAO0d,QAAQw/D,MAAMF,KAAKn0G,OAAOjL,KAAK8Q,QAASgjB,EAAOwgC,KAAMluC,EAAOq4F,GAE9D3qF,EAAOwgC,KAAKrxD,OAASm/B,EAAO0d,QAAQy/D,OAEzCn9E,EAAO0d,QAAQ0/D,MAAMC,WAAWz/G,KAAK8Q,QAASgjB,EAAOwgC,KAAMluC,GAG/DpmB,KAAKgP,SAcb0wG,SAAU,SAAU5rF,EAAQvvB,EAAGC,EAAG4hB,GAE1B0N,EAAOwgC,OAEPt0D,KAAKoP,MAAM7K,EAAGC,EAAG4hB,EAAO,KAEpB0N,EAAOwgC,KAAKrxD,OAASm/B,EAAO0d,QAAQC,OAEpC3d,EAAO0d,QAAQi8B,OAAOqjC,KAAKO,eAAe3/G,KAAM8zB,EAAOwgC,MAElDxgC,EAAOwgC,KAAKrxD,OAASm/B,EAAO0d,QAAQy/D,OAEzCv/G,KAAKmyC,KAAKkC,QAAQurE,MAAMD,eAAe3/G,KAAM8zB,EAAOwgC,MAGxDt0D,KAAKgP,SAYb6wG,WAAY,WAER7/G,KAAKoP,QAELpP,KAAK8Q,QAAQ3K,WAAWnG,KAAKmyC,KAAKyB,OAAOnxC,KAAK8B,GAAIvE,KAAKmyC,KAAKyB,OAAOnxC,KAAK+B,EAAG,GAC3ExE,KAAKmyC,KAAKkC,QAAQurE,MAAME,gBAAgB9/G,KAAK8Q,SAE7C9Q,KAAKgP,QAYT+wG,UAAW,SAAUzrD,EAAMluC,GAEvBpmB,KAAKoP,QACLgzB,EAAO0d,QAAQ0/D,MAAMC,WAAWz/G,KAAK8Q,QAASwjD,EAAMluC,GACpDpmB,KAAKgP,SAMbozB,EAAOgC,MAAMgxB,MAAMvxD,UAAUsB,YAAci9B,EAAOgC,MAAMgxB,MAaxDhzB,EAAOkd,OAeH+/B,UAAW,SAAU11D,EAAGC,EAAGtkB,EAAGD,GAE1B,MAAI+8B,GAAOmyB,OAAOurB,eAEJz6E,GAAK,GAAOC,GAAK,GAAOskB,GAAM,EAAKD,KAAQ,GAI3CA,GAAK,GAAOC,GAAK,GAAOtkB,GAAM,EAAKD,KAAQ,GAwB7Ds5E,YAAa,SAAUqhC,EAAMl4E,EAAKo4C,EAAKC,GAkCnC,OAhCmB,mBAARr4C,IAA+B,OAARA,KAAgBA,EAAM1F,EAAOkd,MAAMo/B,gBAClD,mBAARwB,IAA+B,OAARA,KAAgBA,GAAM,IACrC,mBAARC,IAA+B,OAARA,KAAgBA,GAAM,GAEpD/9C,EAAOmyB,OAAOurB,eAEdh4C,EAAIziC,GAAa,WAAP26G,KAAuB,GACjCl4E,EAAIxiC,GAAa,SAAP06G,KAAuB,GACjCl4E,EAAIle,GAAa,MAAPo2F,KAAuB,EACjCl4E,EAAIne,EAAa,IAAPq2F,IAIVl4E,EAAIne,GAAa,WAAPq2F,KAAuB,GACjCl4E,EAAIle,GAAa,SAAPo2F,KAAuB,GACjCl4E,EAAIxiC,GAAa,MAAP06G,KAAuB,EACjCl4E,EAAIziC,EAAa,IAAP26G,GAGdl4E,EAAI1hB,MAAQ45F,EACZl4E,EAAIk4E,KAAO,QAAUl4E,EAAIne,EAAI,IAAMme,EAAIle,EAAI,IAAMke,EAAIxiC,EAAI,IAAOwiC,EAAIziC,EAAI,IAAO,IAE3E66E,GAEA99C,EAAOkd,MAAM2gE,SAASn4E,EAAIne,EAAGme,EAAIle,EAAGke,EAAIxiC,EAAGwiC,GAG3Cq4C,GAEA/9C,EAAOkd,MAAM4gE,SAASp4E,EAAIne,EAAGme,EAAIle,EAAGke,EAAIxiC,EAAGwiC,GAGxCA,GAeXq4E,SAAU,SAAUH,EAAMl4E,GActB,MAZKA,KAEDA,EAAM1F,EAAOkd,MAAMo/B,eAGvB52C,EAAIne,GAAa,WAAPq2F,KAAuB,GACjCl4E,EAAIle,GAAa,SAAPo2F,KAAuB,GACjCl4E,EAAIxiC,GAAa,MAAP06G,KAAuB,EACjCl4E,EAAIziC,EAAa,IAAP26G,EAEVl4E,EAAIk4E,KAAO,QAAUl4E,EAAIne,EAAI,IAAMme,EAAIle,EAAI,IAAMke,EAAIxiC,EAAI,IAAMwiC,EAAIziC,EAAI,IAEhEyiC,GAgBXs4E,OAAQ,SAAUz2F,EAAGC,EAAGtkB,EAAGD,GAEvB,MAAQskB,IAAK,GAAOC,GAAK,GAAOtkB,GAAM,EAAKD,GAkB/C46G,SAAU,SAAUt2F,EAAGC,EAAGtkB,EAAGwiC,GAEpBA,IAEDA,EAAM1F,EAAOkd,MAAMo/B,YAAY/0D,EAAGC,EAAGtkB,EAAG,IAG5CqkB,GAAK,IACLC,GAAK,IACLtkB,GAAK,GAEL,IAAIu0B,GAAM33B,KAAK23B,IAAIlQ,EAAGC,EAAGtkB,GACrB4P,EAAMhT,KAAKgT,IAAIyU,EAAGC,EAAGtkB,EAOzB,IAJAwiC,EAAIrN,EAAI,EACRqN,EAAI0C,EAAI,EACR1C,EAAIrD,GAAKvvB,EAAM2kB,GAAO,EAElB3kB,IAAQ2kB,EACZ,CACI,GAAIr0B,GAAI0P,EAAM2kB,CAEdiO,GAAI0C,EAAI1C,EAAIrD,EAAI,GAAMj/B,GAAK,EAAI0P,EAAM2kB,GAAOr0B,GAAK0P,EAAM2kB,GAEnD3kB,IAAQyU,EAERme,EAAIrN,GAAK7Q,EAAItkB,GAAKE,GAASF,EAAJskB,EAAQ,EAAI,GAE9B1U,IAAQ0U,EAEbke,EAAIrN,GAAKn1B,EAAIqkB,GAAKnkB,EAAI,EAEjB0P,IAAQ5P,IAEbwiC,EAAIrN,GAAK9Q,EAAIC,GAAKpkB,EAAI,GAG1BsiC,EAAIrN,GAAK,EAGb,MAAOqN,IAkBXy3C,SAAU,SAAU9kD,EAAG+P,EAAG/F,EAAGqD,GAczB,GAZKA,GAODA,EAAIne,EAAI8a,EACRqD,EAAIle,EAAI6a,EACRqD,EAAIxiC,EAAIm/B,GAPRqD,EAAM1F,EAAOkd,MAAMo/B,YAAYj6C,EAAGA,EAAGA,GAU/B,IAAN+F,EACJ,CACI,GAAI61E,GAAQ,GAAJ57E,EAAUA,GAAK,EAAI+F,GAAK/F,EAAI+F,EAAI/F,EAAI+F,EACxCtmC,EAAI,EAAIugC,EAAI47E,CAChBv4E,GAAIne,EAAIyY,EAAOkd,MAAMghE,WAAWp8G,EAAGm8G,EAAG5lF,EAAI,EAAI,GAC9CqN,EAAIle,EAAIwY,EAAOkd,MAAMghE,WAAWp8G,EAAGm8G,EAAG5lF,GACtCqN,EAAIxiC,EAAI88B,EAAOkd,MAAMghE,WAAWp8G,EAAGm8G,EAAG5lF,EAAI,EAAI,GAalD,MANAqN,GAAIne,EAAIznB,KAAKmoC,MAAe,IAARvC,EAAIne,EAAU,GAClCme,EAAIle,EAAI1nB,KAAKmoC,MAAe,IAARvC,EAAIle,EAAU,GAClCke,EAAIxiC,EAAIpD,KAAKmoC,MAAe,IAARvC,EAAIxiC,EAAU,GAElC88B,EAAOkd,MAAMihE,YAAYz4E,GAElBA,GAkBXo4E,SAAU,SAAUv2F,EAAGC,EAAGtkB,EAAGwiC,GAEpBA,IAEDA,EAAM1F,EAAOkd,MAAMo/B,YAAY/0D,EAAGC,EAAGtkB,EAAG,MAG5CqkB,GAAK,IACLC,GAAK,IACLtkB,GAAK,GAEL,IAAIu0B,GAAM33B,KAAK23B,IAAIlQ,EAAGC,EAAGtkB,GACrB4P,EAAMhT,KAAKgT,IAAIyU,EAAGC,EAAGtkB,GACrBE,EAAI0P,EAAM2kB,CAyBd,OAtBAiO,GAAIrN,EAAI,EACRqN,EAAI0C,EAAY,IAARt1B,EAAY,EAAI1P,EAAI0P,EAC5B4yB,EAAIhoB,EAAI5K,EAEJA,IAAQ2kB,IAEJ3kB,IAAQyU,EAERme,EAAIrN,GAAK7Q,EAAItkB,GAAKE,GAASF,EAAJskB,EAAQ,EAAI,GAE9B1U,IAAQ0U,EAEbke,EAAIrN,GAAKn1B,EAAIqkB,GAAKnkB,EAAI,EAEjB0P,IAAQ5P,IAEbwiC,EAAIrN,GAAK9Q,EAAIC,GAAKpkB,EAAI,GAG1BsiC,EAAIrN,GAAK,GAGNqN,GAkBX04E,SAAU,SAAU/lF,EAAG+P,EAAG1qB,EAAGgoB,GAEN,mBAARA,KAAuBA,EAAM1F,EAAOkd,MAAMo/B,YAAY,EAAG,EAAG,EAAG,EAAGjkD,EAAG+P,EAAG,EAAG1qB,GAEtF,IAAI6J,GAAGC,EAAGtkB,EACNnB,EAAIjC,KAAKmoC,MAAU,EAAJ5P,GACfkL,EAAQ,EAAJlL,EAAQt2B,EACZD,EAAI4b,GAAK,EAAI0qB,GACb61E,EAAIvgG,GAAK,EAAI6lB,EAAI6E,GACjBgtD,EAAI13E,GAAK,GAAK,EAAI6lB,GAAK6E,EAE3B,QAAQrmC,EAAI,GAER,IAAK,GACDwlB,EAAI7J,EACJ8J,EAAI4tE,EACJlyF,EAAIpB,CACJ,MACJ,KAAK,GACDylB,EAAI02F,EACJz2F,EAAI9J,EACJxa,EAAIpB,CACJ,MACJ,KAAK,GACDylB,EAAIzlB,EACJ0lB,EAAI9J,EACJxa,EAAIkyF,CACJ,MACJ,KAAK,GACD7tE,EAAIzlB,EACJ0lB,EAAIy2F,EACJ/6G,EAAIwa,CACJ,MACJ,KAAK,GACD6J,EAAI6tE,EACJ5tE,EAAI1lB,EACJoB,EAAIwa,CACJ,MACJ,KAAK,GACD6J,EAAI7J,EACJ8J,EAAI1lB,EACJoB,EAAI+6G,EAUZ,MANAv4E,GAAIne,EAAIznB,KAAKmoC,MAAU,IAAJ1gB,GACnBme,EAAIle,EAAI1nB,KAAKmoC,MAAU,IAAJzgB,GACnBke,EAAIxiC,EAAIpD,KAAKmoC,MAAU,IAAJ/kC,GAEnB88B,EAAOkd,MAAMihE,YAAYz4E,GAElBA,GAeXw4E,WAAY,SAAUp8G,EAAGm8G,EAAG7oB,GAYxB,MAVQ,GAAJA,IAEAA,GAAK,GAGLA,EAAI,IAEJA,GAAK,GAGD,EAAI,EAARA,EAEOtzF,EAAc,GAATm8G,EAAIn8G,GAASszF,EAGrB,GAAJA,EAEO6oB,EAGH,EAAI,EAAR7oB,EAEOtzF,GAAKm8G,EAAIn8G,IAAM,EAAI,EAAIszF,GAAK,EAGhCtzF,GAuBXw6E,YAAa,SAAU/0D,EAAGC,EAAGtkB,EAAGD,EAAGo1B,EAAG+P,EAAG/F,EAAG3kB,GAExC,GAAIgoB,IAAQne,EAAGA,GAAK,EAAGC,EAAGA,GAAK,EAAGtkB,EAAGA,GAAK,EAAGD,EAAGA,GAAK,EAAGo1B,EAAGA,GAAK,EAAG+P,EAAGA,GAAK,EAAG/F,EAAGA,GAAK,EAAG3kB,EAAGA,GAAK,EAAGsG,MAAO,EAAGq6F,QAAS,EAAGT,KAAM,GAKhI,OAHAl4E,GAAI1hB,MAAQgc,EAAOkd,MAAME,SAAS1X,EAAIne,EAAGme,EAAIle,EAAGke,EAAIxiC,GACpDwiC,EAAI24E,QAAUr+E,EAAOkd,MAAMohE,WAAW54E,EAAIziC,EAAGyiC,EAAIne,EAAGme,EAAIle,EAAGke,EAAIxiC,GAExD88B,EAAOkd,MAAMihE,YAAYz4E,IAYpCy4E,YAAa,SAAUz4E,GAInB,MAFAA,GAAIk4E,KAAO,QAAUl4E,EAAIne,EAAEnV,WAAa,IAAMszB,EAAIle,EAAEpV,WAAa,IAAMszB,EAAIxiC,EAAEkP,WAAa,IAAMszB,EAAIziC,EAAEmP,WAAa,IAE5GszB,GAeX44E,WAAY,SAAUr7G,EAAGskB,EAAGC,EAAGtkB,GAE3B,MAAOD,IAAK,GAAKskB,GAAK,GAAKC,GAAK,EAAItkB,GAcxCk6C,SAAU,SAAU71B,EAAGC,EAAGtkB,GAEtB,MAAOqkB,IAAK,GAAKC,GAAK,EAAItkB,GAiB9Bm6C,YAAa,SAAU91B,EAAGC,EAAGtkB,EAAGD,EAAGukG,GAK/B,MAHiB,mBAANvkG,KAAqBA,EAAI,KACd,mBAAXukG,KAA0BA,EAAS,KAE/B,MAAXA,EAEO,MAAQ,GAAK,KAAOjgF,GAAK,KAAOC,GAAK,GAAKtkB,GAAGkP,SAAS,IAAI1Q,MAAM,GAIhE,KAAOs+B,EAAOkd,MAAMqhE,eAAet7G,GAAK+8B,EAAOkd,MAAMqhE,eAAeh3F,GAAKyY,EAAOkd,MAAMqhE,eAAe/2F,GAAKwY,EAAOkd,MAAMqhE,eAAer7G,IAarJs7G,SAAU,SAAUjnG,GAEhB,GAAImB,GAAMsnB,EAAOkd,MAAMuhE,WAAWlnG,EAElC,OAAImB,GAEOsnB,EAAOkd,MAAMohE,WAAW5lG,EAAIzV,EAAGyV,EAAI6O,EAAG7O,EAAI8O,EAAG9O,EAAIxV,GAF5D,QAoBJu7G,WAAY,SAAUlnG,EAAKmuB,GAGvBnuB,EAAMA,EAAI0/B,QAAQ,0CAA2C,SAASrP,EAAGrgB,EAAGC,EAAGtkB,GAC3E,MAAOqkB,GAAIA,EAAIC,EAAIA,EAAItkB,EAAIA,GAG/B,IAAI2R,GAAS,mDAAmD6pG,KAAKnnG,EAErE,IAAI1C,EACJ,CACI,GAAI0S,GAAI/R,SAASX,EAAO,GAAI,IACxB2S,EAAIhS,SAASX,EAAO,GAAI,IACxB3R,EAAIsS,SAASX,EAAO,GAAI,GAEvB6wB,IAMDA,EAAIne,EAAIA,EACRme,EAAIle,EAAIA,EACRke,EAAIxiC,EAAIA,GANRwiC,EAAM1F,EAAOkd,MAAMo/B,YAAY/0D,EAAGC,EAAGtkB,GAU7C,MAAOwiC,IAeXi5E,WAAY,SAAUC,EAAKl5E,GAElBA,IAEDA,EAAM1F,EAAOkd,MAAMo/B,cAGvB,IAAIznE,GAAS,4EAA4E6pG,KAAKE,EAU9F,OARI/pG,KAEA6wB,EAAIne,EAAI/R,SAASX,EAAO,GAAI,IAC5B6wB,EAAIle,EAAIhS,SAASX,EAAO,GAAI,IAC5B6wB,EAAIxiC,EAAIsS,SAASX,EAAO,GAAI,IAC5B6wB,EAAIziC,EAAkBoI,SAAdwJ,EAAO,GAAmB4wE,WAAW5wE,EAAO,IAAM,GAGvD6wB,GAiBXyX,aAAc,SAAUh2C,EAAOu+B,GAS3B,GALKA,IAEDA,EAAM1F,EAAOkd,MAAMo/B,eAGF,gBAAVn1E,GAEP,MAA6B,KAAzBA,EAAMlG,QAAQ,OAEP++B,EAAOkd,MAAMyhE,WAAWx3G,EAAOu+B,IAKtCA,EAAIziC,EAAI,EACD+8B,EAAOkd,MAAMuhE,WAAWt3G,EAAOu+B,GAGzC,IAAqB,gBAAVv+B,GAChB,CAGI,GAAI03G,GAAY7+E,EAAOkd,MAAM4hE,OAAO33G,EAKpC,OAJAu+B,GAAIne,EAAIs3F,EAAUt3F,EAClBme,EAAIle,EAAIq3F,EAAUr3F,EAClBke,EAAIxiC,EAAI27G,EAAU37G,EAClBwiC,EAAIziC,EAAI47G,EAAU57G,EAAI,IACfyiC,EAIP,MAAOA,IAaf64E,eAAgB,SAAUv6F,GAEtB,GAAIzM,GAAMyM,EAAM5R,SAAS,GACzB,OAAqB,IAAdmF,EAAItV,OAAc,IAAMsV,EAAMA,GAazCwnG,cAAe,SAAU32E,EAAG1qB,GAEP,mBAAN0qB,KAAqBA,EAAI,GACnB,mBAAN1qB,KAAqBA,EAAI,EAIpC,KAAK,GAFD4b,MAEKn2B,EAAI,EAAQ,KAALA,EAAUA,IAEtBm2B,EAAOp3B,KAAK89B,EAAOkd,MAAMkhE,SAASj7G,EAAI,IAAKilC,EAAG1qB,GAGlD,OAAO4b,IAaX0lF,cAAe,SAAU52E,EAAG/F,GAEP,mBAAN+F,KAAqBA,EAAI,IACnB,mBAAN/F,KAAqBA,EAAI,GAIpC,KAAK,GAFD/I,MAEKn2B,EAAI,EAAQ,KAALA,EAAUA,IAEtBm2B,EAAOp3B,KAAK89B,EAAOkd,MAAMigC,SAASh6E,EAAI,IAAKilC,EAAG/F,GAGlD,OAAO/I,IAgBX2lF,iBAAkB,SAAUC,EAAQC,EAAQC,EAAOC,EAAaz5G,GAEvC,mBAAVA,KAAyBA,EAAQ,IAE5C,IAAI05G,GAAOt/E,EAAOkd,MAAM4hE,OAAOI,GAC3BK,EAAOv/E,EAAOkd,MAAM4hE,OAAOK,GAC3B53F,GAAOg4F,EAAKjiC,IAAMgiC,EAAKhiC,KAAO+hC,EAAeD,EAASE,EAAKhiC,IAC3D91D,GAAO+3F,EAAKhiC,MAAQ+hC,EAAK/hC,OAAS8hC,EAAeD,EAASE,EAAK/hC,MAC/Dr6E,GAAOq8G,EAAK/hC,KAAO8hC,EAAK9hC,MAAQ6hC,EAAeD,EAASE,EAAK9hC,IAEjE,OAAOx9C,GAAOkd,MAAMohE,WAAW14G,EAAO2hB,EAAGC,EAAGtkB,IAiBhDs8G,wBAAyB,SAAUx7F,EAAOuD,EAAGC,EAAGtkB,EAAGk8G,EAAOC,GAEtD,GAAIlhG,GAAM6hB,EAAOkd,MAAM4hE,OAAO96F,GAC1By7F,GAAQl4F,EAAIpJ,EAAIm/D,KAAO+hC,EAAeD,EAASjhG,EAAIm/D,IACnDoiC,GAAQl4F,EAAIrJ,EAAIo/D,OAAS8hC,EAAeD,EAASjhG,EAAIo/D,MACrDoiC,GAAQz8G,EAAIib,EAAIq/D,MAAQ6hC,EAAeD,EAASjhG,EAAIq/D,IAExD,OAAOx9C,GAAOkd,MAAME,SAASqiE,EAAIC,EAAIC,IAkBzCC,eAAgB,SAAUhjC,EAAIC,EAAIn4E,EAAIo4E,EAAIC,EAAI1yD,EAAI+0F,EAAOC,GAErD,GAAI93F,IAAOu1D,EAAKF,GAAMyiC,EAAeD,EAASxiC,EAC1Cp1D,GAAOu1D,EAAKF,GAAMwiC,EAAeD,EAASviC,EAC1C35E,GAAOmnB,EAAK3lB,GAAM26G,EAAeD,EAAS16G,CAE9C,OAAOs7B,GAAOkd,MAAME,SAAS71B,EAAGC,EAAGtkB,IAgBvC28G,eAAgB,SAAUpoF,EAAK3kB,EAAKlN,GAOhC,GALmB,mBAAR6xB,KAAuBA,EAAM,GACrB,mBAAR3kB,KAAuBA,EAAM,KACnB,mBAAVlN,KAAyBA,EAAQ,KAGxCkN,EAAM,KAAO2kB,EAAM3kB,EAEnB,MAAOktB,GAAOkd,MAAME,SAAS,IAAK,IAAK,IAG3C,IAAIkgC,GAAM7lD,EAAM33B,KAAKwlC,MAAMxlC,KAAK4iC,UAAY5vB,EAAM2kB,IAC9C8lD,EAAQ9lD,EAAM33B,KAAKwlC,MAAMxlC,KAAK4iC,UAAY5vB,EAAM2kB,IAChD+lD,EAAO/lD,EAAM33B,KAAKwlC,MAAMxlC,KAAK4iC,UAAY5vB,EAAM2kB,GAEnD,OAAOuI,GAAOkd,MAAMohE,WAAW14G,EAAO03E,EAAKC,EAAOC,IActDshC,OAAQ,SAAU96F,GAEd,MAAIA,GAAQ,UAIJpe,MAAOoe,IAAU,GACjBs5D,IAAKt5D,GAAS,GAAK,IACnBu5D,MAAOv5D,GAAS,EAAI,IACpBw5D,KAAc,IAARx5D,EACN/gB,EAAG+gB,IAAU,GACbuD,EAAGvD,GAAS,GAAK,IACjBwD,EAAGxD,GAAS,EAAI,IAChB9gB,EAAW,IAAR8gB,IAMHpe,MAAO,IACP03E,IAAKt5D,GAAS,GAAK,IACnBu5D,MAAOv5D,GAAS,EAAI,IACpBw5D,KAAc,IAARx5D,EACN/gB,EAAG,IACHskB,EAAGvD,GAAS,GAAK,IACjBwD,EAAGxD,GAAS,EAAI,IAChB9gB,EAAW,IAAR8gB,IAcf87F,UAAW,SAAU97F,GAEjB,GAAqB,gBAAVA,GAEP,MAAO,QAAUA,EAAMuD,EAAEnV,WAAa,IAAM4R,EAAMwD,EAAEpV,WAAa,IAAM4R,EAAM9gB,EAAEkP,WAAa,KAAO4R,EAAM/gB,EAAI,KAAKmP,WAAa,GAI/H,IAAIsG,GAAMsnB,EAAOkd,MAAM4hE,OAAO96F,EAC9B,OAAO,QAAUtL,EAAI6O,EAAEnV,WAAa,IAAMsG,EAAI8O,EAAEpV,WAAa,IAAMsG,EAAIxV,EAAEkP,WAAa,KAAOsG,EAAIzV,EAAI,KAAKmP,WAAa,KAa/H2tG,SAAU,SAAU/7F,GAChB,MAAOA,KAAU,IAWrBg8F,cAAe,SAAUh8F,GACrB,OAAQA,IAAU,IAAM,KAW5Bi8F,OAAQ,SAAUj8F,GACd,MAAOA,IAAS,GAAK,KAWzBk8F,SAAU,SAAUl8F,GAChB,MAAOA,IAAS,EAAI,KAWxBm8F,QAAS,SAAUn8F,GACf,MAAe,KAARA,IAwBfgc,EAAO0d,QAAU,SAAU3N,EAAMsL,GAE7BA,EAASA,MAKTz9C,KAAKmyC,KAAOA,EAKZnyC,KAAKy9C,OAASA,EAKdz9C,KAAKwiH,OAAS,KAKdxiH,KAAK2uC,GAAK,KAKV3uC,KAAKyiH,MAAQ,KAKbziH,KAAK4/G,MAAQ,KAKb5/G,KAAK0iH,SAAW,KAEhB1iH,KAAK09C,eAQTtb,EAAO0d,QAAQC,OAAS,EAMxB3d,EAAO0d,QAAQ8lC,KAAO,EAMtBxjD,EAAO0d,QAAQu/D,MAAQ,EAMvBj9E,EAAO0d,QAAQy/D,MAAQ,EAMvBn9E,EAAO0d,QAAQ6iE,SAAW,EAE1BvgF,EAAO0d,QAAQj8C,WAOX65C,YAAa,WAEH19C,KAAKy9C,OAAOnX,eAAe,WAAatmC,KAAKy9C,OAAe,UAAM,IAASrb,EAAO0d,QAAQxZ,eAAe,YAG3GtmC,KAAKwiH,OAAS,GAAIpgF,GAAO0d,QAAQi8B,OAAO/7E,KAAKmyC,MAC7CnyC,KAAKmyC,KAAK+B,KAAKwxD,SAAW,IAG1B1lG,KAAKy9C,OAAOnX,eAAe,UAAYtmC,KAAKy9C,OAAc,SAAM,GAAQrb,EAAO0d,QAAQxZ,eAAe,WAEtGtmC,KAAKyiH,MAAQ,GAAIrgF,GAAO0d,QAAQw/D,MAAMt/G,KAAKmyC,OAG3CnyC,KAAKy9C,OAAOnX,eAAe,OAAStmC,KAAKy9C,OAAW,MAAM,GAAQrb,EAAO0d,QAAQxZ,eAAe,QAEhGtmC,KAAK2uC,GAAK,GAAIvM,GAAO0d,QAAQ8iE,GAAG5iH,KAAKmyC,KAAMnyC,KAAKy9C,SAGhDz9C,KAAKy9C,OAAOnX,eAAe,UAAYtmC,KAAKy9C,OAAc,SAAM,GAAQrb,EAAO0d,QAAQxZ,eAAe,WAEtGtmC,KAAK4/G,MAAQ,GAAIx9E,GAAO0d,QAAQy/D,MAAMv/G,KAAKmyC,KAAMnyC,KAAKy9C;EAgB9DolE,YAAa,SAAUC,GAUnB,GARIA,IAAW1gF,EAAO0d,QAAQC,OAE1B//C,KAAKwiH,OAAS,GAAIpgF,GAAO0d,QAAQi8B,OAAO/7E,KAAKmyC,MAExC2wE,IAAW1gF,EAAO0d,QAAQ8lC,OAE/B5lF,KAAK2uC,GAAK,GAAIvM,GAAO0d,QAAQ8iE,GAAG5iH,KAAKmyC,KAAMnyC,KAAKy9C,SAEhDqlE,IAAW1gF,EAAO0d,QAAQu/D,MAE1Br/G,KAAKyiH,MAAQ,GAAIrgF,GAAO0d,QAAQw/D,MAAMt/G,KAAKmyC,UAE1C,IAAI2wE,IAAW1gF,EAAO0d,QAAQy/D,OAAwB,OAAfv/G,KAAK4/G,MAE7C5/G,KAAK4/G,MAAQ,GAAIx9E,GAAO0d,QAAQ0/D,MAAMx/G,KAAKmyC,KAAMnyC,KAAKy9C,YAErD,IAAIqlE,IAAW1gF,EAAO0d,QAAQ6iE,UAA8B,OAAlB3iH,KAAK0iH,SAEhD,KAAM,IAAI51G,OAAM,8DAwBxBoiB,OAAQ,SAAUijC,EAAQ2wD,EAAQprE,GAER,mBAAXorE,KAA0BA,EAAS1gF,EAAO0d,QAAQC,QACxC,mBAAVrI,KAAyBA,GAAQ,GAExCorE,IAAW1gF,EAAO0d,QAAQC,OAE1B//C,KAAKwiH,OAAOtzF,OAAOijC,GAEd2wD,IAAW1gF,EAAO0d,QAAQ8lC,MAAQ5lF,KAAK2uC,GAE5C3uC,KAAK2uC,GAAGzf,OAAOijC,EAAQza,GAElBorE,IAAW1gF,EAAO0d,QAAQu/D,OAASr/G,KAAKyiH,MAE7CziH,KAAKyiH,MAAMM,WAAW5wD,GAEjB2wD,IAAW1gF,EAAO0d,QAAQy/D,OAASv/G,KAAK4/G,OAE7C5/G,KAAK4/G,MAAM1wF,OAAOijC,IAW1B/a,UAAW,WAIHp3C,KAAK2uC,IAEL3uC,KAAK2uC,GAAGyI,YAGRp3C,KAAK4/G,OAEL5/G,KAAK4/G,MAAMxoE,aAWnB59B,OAAQ,WAIAxZ,KAAK2uC,IAEL3uC,KAAK2uC,GAAGn1B,SAGRxZ,KAAK4/G,OAEL5/G,KAAK4/G,MAAMpmG,UAWnBg6B,iBAAkB,WAEVxzC,KAAKwiH,QAELxiH,KAAKwiH,OAAOhvE,mBAGZxzC,KAAKyiH,OAELziH,KAAKyiH,MAAMjvE,mBAGXxzC,KAAK2uC,IAEL3uC,KAAK2uC,GAAG6E,mBAGRxzC,KAAK4/G,OAEL5/G,KAAK4/G,MAAMpsE,oBAWnB1jB,MAAO,WAEC9vB,KAAK2uC,IAEL3uC,KAAK2uC,GAAG7e,QAGR9vB,KAAK4/G,OAEL5/G,KAAK4/G,MAAM9vF,SAUnB5jB,QAAS,WAEDlM,KAAK2uC,IAEL3uC,KAAK2uC,GAAGziC,UAGRlM,KAAK4/G,OAEL5/G,KAAK4/G,MAAM1zG,UAGflM,KAAKwiH,OAAS,KACdxiH,KAAKyiH,MAAQ,KACbziH,KAAK2uC,GAAK,KACV3uC,KAAK4/G,MAAQ,OAMrBx9E,EAAO0d,QAAQj8C,UAAUsB,YAAci9B,EAAO0d,QAe9C1d,EAAO0d,QAAQi8B,OAAS,SAAU5pC,GAK9BnyC,KAAKmyC,KAAOA,EAKZnyC,KAAKgjH,QAAU,GAAI5gF,GAAOn+B,MAK1BjE,KAAK6K,OAAS,GAAIu3B,GAAOl7B,UAAU,EAAG,EAAGirC,EAAKC,MAAMjrC,MAAOgrC,EAAKC,MAAMhrC,QAOtEpH,KAAKijH,gBAAmBrlD,IAAI,EAAMC,MAAM,EAAM13B,MAAM,EAAMD,OAAO,GAKjElmC,KAAK6+F,WAAa,GAKlB7+F,KAAK8+F,UAAY,EAKjB9+F,KAAKkjH,aAAe,EAKpBljH,KAAKmjH,UAAY,GAKjBnjH,KAAKojH,QAAS,EAKdpjH,KAAKqjH,cAAe,EAKpBrjH,KAAKk/G,SAAW,GAAI98E,GAAOw8D,SAAS5+F,KAAKmyC,KAAKC,MAAMvnC,OAAOtG,EAAGvE,KAAKmyC,KAAKC,MAAMvnC,OAAOrG,EAAGxE,KAAKmyC,KAAKC,MAAMvnC,OAAO1D,MAAOnH,KAAKmyC,KAAKC,MAAMvnC,OAAOzD,OAAQpH,KAAK6+F,WAAY7+F,KAAK8+F,WAQ3K9+F,KAAKsjH,SAAW,EAMhBtjH,KAAKujH,YAAc,EAMnBvjH,KAAKwjH,WAAa,EAMlBxjH,KAAKyjH,WAAa,EAMlBzjH,KAAK0jH,cAAgB,EAMrB1jH,KAAK2jH,cAAgB,EAMrB3jH,KAAK4jH,SAAW,EAMhB5jH,KAAK6jH,YAML7jH,KAAK8jH,SAAU,EAMf9jH,KAAK+jH,OAAS,EAMd/jH,KAAKgkH,OAAS,EAMdhkH,KAAKs4E,IAAM,EAMXt4E,KAAKu4E,IAAM,EAGXv4E,KAAKwzC,oBAITpR,EAAO0d,QAAQi8B,OAAOl4E,UAAUsB,YAAci9B,EAAO0d,QAAQi8B,OAE7D35C,EAAO0d,QAAQi8B,OAAOl4E,WAWlBshD,UAAW,SAAU5gD,EAAGC,EAAG2C,EAAOC,GAE9BpH,KAAK6K,OAAOw8B,MAAM9iC,EAAGC,EAAG2C,EAAOC,IASnCosC,iBAAkB,WAEdxzC,KAAK6K,OAAOw8B,MAAMrnC,KAAKmyC,KAAKC,MAAMvnC,OAAOtG,EAAGvE,KAAKmyC,KAAKC,MAAMvnC,OAAOrG,EAAGxE,KAAKmyC,KAAKC,MAAMvnC,OAAO1D,MAAOnH,KAAKmyC,KAAKC,MAAMvnC,OAAOzD,SAY/H8nB,OAAQ,SAAUijC,EAAQ/lD,GAEE,mBAAbA,KAA4BA,GAAW,EAElD,IAAIjI,GAAI,CAER,IAAIrC,MAAM6kC,QAAQwrB,GAId,IAFAhuD,EAAIguD,EAAO9tD,OAEJF,KAECguD,EAAOhuD,YAAci+B,GAAOsd,MAG5B1/C,KAAKkvB,OAAOijC,EAAOhuD,GAAGiI,SAAUA,IAIhCpM,KAAK4/C,WAAWuS,EAAOhuD,IAEnBiI,GAAY+lD,EAAOhuD,GAAGmiC,eAAe,aAAe6rB,EAAOhuD,GAAGiI,SAAS/H,OAAS,GAEhFrE,KAAKkvB,OAAOijC,EAAOhuD,IAAI,QAO/BguD,aAAkB/vB,GAAOsd,MAGzB1/C,KAAKkvB,OAAOijC,EAAO/lD,SAAUA,IAI7BpM,KAAK4/C,WAAWuS,GAEZ/lD,GAAY+lD,EAAO7rB,eAAe,aAAe6rB,EAAO/lD,SAAS/H,OAAS,GAE1ErE,KAAKkvB,OAAOijC,EAAO/lD,UAAU,KAc7CwzC,WAAY,SAAUuS,GAEdA,EAAO7rB,eAAe,SAA2B,OAAhB6rB,EAAOmC,OAExCnC,EAAOmC,KAAO,GAAIlyB,GAAO0d,QAAQi8B,OAAOqjC,KAAKjtD,KAWrD8xD,aAAc,SAAU3vD,GAEpBt0D,KAAKkkH,eAAiBlkH,KAAKmkH,gBAAgB,EAAG7vD,EAAMA,EAAK8vD,gBAAiB9vD,EAAK+vD,oBAAqB/vD,EAAKgwD,YAAahwD,EAAKiwD,YAAcjwD,EAAK8vD,gBAC9I9vD,EAAK8vD,iBAAmBpkH,KAAKkkH,eAC7B5vD,EAAKvsD,UAAausD,EAAK8vD,gBAAkBpkH,KAAKmyC,KAAK+B,KAAKmyC,eAExD/xB,EAAKkwD,SAASjgH,EAAIvE,KAAKmkH,gBAAgB,EAAG7vD,EAAMA,EAAKkwD,SAASjgH,EAAG+vD,EAAKmwD,aAAalgH,EAAG+vD,EAAKowD,KAAKngH,EAAG+vD,EAAKqwD,YAAYpgH,GACpH+vD,EAAKkwD,SAAShgH,EAAIxE,KAAKmkH,gBAAgB,EAAG7vD,EAAMA,EAAKkwD,SAAShgH,EAAG8vD,EAAKmwD,aAAajgH,EAAG8vD,EAAKowD,KAAKlgH,EAAG8vD,EAAKqwD,YAAYngH,IAiBxH2/G,gBAAiB,SAAUvvC,EAAMtgB,EAAMkwD,EAAUC,EAAcC,EAAMxvG,GA4CjE,MA1CAA,GAAMA,GAAO,IAED,GAAR0/D,GAAatgB,EAAKswD,aAElBJ,IAAaxkH,KAAKgjH,QAAQz+G,EAAI+vD,EAAK0uD,QAAQz+G,GAAKvE,KAAKmyC,KAAK+B,KAAKmyC,eAElD,GAARzR,GAAatgB,EAAKswD,eAEvBJ,IAAaxkH,KAAKgjH,QAAQx+G,EAAI8vD,EAAK0uD,QAAQx+G,GAAKxE,KAAKmyC,KAAK+B,KAAKmyC,gBAG/Do+B,EAEAD,GAAYC,EAAezkH,KAAKmyC,KAAK+B,KAAKmyC,eAErCq+B,IAEL1kH,KAAK6kH,MAAQH,EAAO1kH,KAAKmyC,KAAK+B,KAAKmyC,eAE/Bm+B,EAAWxkH,KAAK6kH,MAAQ,EAExBL,GAAYxkH,KAAK6kH,MAEZL,EAAWxkH,KAAK6kH,MAAQ,EAE7BL,GAAYxkH,KAAK6kH,MAIjBL,EAAW,GAIfA,EAAWtvG,EAEXsvG,EAAWtvG,GAEMA,EAAZsvG,IAELA,GAAYtvG,GAGTsvG,GAoBXh/B,QAAS,SAAUs/B,EAASC,EAASC,EAAiBC,EAAiBnuE,GASnE,GAPAkuE,EAAkBA,GAAmB,KACrCC,EAAkBA,GAAmB,KACrCnuE,EAAkBA,GAAmBkuE,EAErChlH,KAAK8jH,SAAU,EACf9jH,KAAK+jH,OAAS,GAETjiH,MAAM6kC,QAAQm+E,IAAYhjH,MAAM6kC,QAAQo+E,GAEzC,IAAK,GAAI5gH,GAAI,EAAIm3B,EAAMypF,EAAQ1gH,OAAYi3B,EAAJn3B,EAASA,IAE5CnE,KAAKklH,eAAeJ,EAASC,EAAQ5gH,GAAI6gH,EAAiBC,EAAiBnuE,GAAiB,OAG/F,IAAIh1C,MAAM6kC,QAAQm+E,KAAahjH,MAAM6kC,QAAQo+E,GAE9C,IAAK,GAAI5gH,GAAI,EAAIm3B,EAAMwpF,EAAQzgH,OAAYi3B,EAAJn3B,EAASA,IAE5CnE,KAAKklH,eAAeJ,EAAQ3gH,GAAI4gH,EAASC,EAAiBC,EAAiBnuE,GAAiB,OAG/F,IAAIh1C,MAAM6kC,QAAQm+E,IAAYhjH,MAAM6kC,QAAQo+E,GAE7C,IAAK,GAAI5gH,GAAI,EAAIm3B,EAAMwpF,EAAQzgH,OAAYi3B,EAAJn3B,EAASA,IAE5C,IAAK,GAAIU,GAAI,EAAIsgH,EAAOJ,EAAQ1gH,OAAY8gH,EAAJtgH,EAAUA,IAE9C7E,KAAKklH,eAAeJ,EAAQ3gH,GAAI4gH,EAAQlgH,GAAImgH,EAAiBC,EAAiBnuE,GAAiB,OAMvG92C,MAAKklH,eAAeJ,EAASC,EAASC,EAAiBC,EAAiBnuE,GAAiB,EAG7F,OAAQ92C,MAAK+jH,OAAS,GAsB1BqB,QAAS,SAAUN,EAASC,EAASM,EAAiBJ,EAAiBnuE,GASnE,GAPAuuE,EAAkBA,GAAmB,KACrCJ,EAAkBA,GAAmB,KACrCnuE,EAAkBA,GAAmBuuE,EAErCrlH,KAAK8jH,SAAU,EACf9jH,KAAK+jH,OAAS,GAETjiH,MAAM6kC,QAAQm+E,IAAYhjH,MAAM6kC,QAAQo+E,GAEzC,IAAK,GAAI5gH,GAAI,EAAIm3B,EAAMypF,EAAQ1gH,OAAYi3B,EAAJn3B,EAASA,IAE5CnE,KAAKklH,eAAeJ,EAASC,EAAQ5gH,GAAIkhH,EAAiBJ,EAAiBnuE,GAAiB,OAG/F,IAAIh1C,MAAM6kC,QAAQm+E,KAAahjH,MAAM6kC,QAAQo+E,GAE9C,IAAK,GAAI5gH,GAAI,EAAIm3B,EAAMwpF,EAAQzgH,OAAYi3B,EAAJn3B,EAASA,IAE5CnE,KAAKklH,eAAeJ,EAAQ3gH,GAAI4gH,EAASM,EAAiBJ,EAAiBnuE,GAAiB,OAG/F,IAAIh1C,MAAM6kC,QAAQm+E,IAAYhjH,MAAM6kC,QAAQo+E,GAE7C,IAAK,GAAI5gH,GAAI,EAAImhH,EAAOR,EAAQzgH,OAAYihH,EAAJnhH,EAAUA,IAE9C,IAAK,GAAIU,GAAI,EAAIsgH,EAAOJ,EAAQ1gH,OAAY8gH,EAAJtgH,EAAUA,IAE9C7E,KAAKklH,eAAeJ,EAAQ3gH,GAAI4gH,EAAQlgH,GAAIwgH,EAAiBJ,EAAiBnuE,GAAiB,OAMvG92C,MAAKklH,eAAeJ,EAASC,EAASM,EAAiBJ,EAAiBnuE,GAAiB,EAG7F,OAAQ92C,MAAK+jH,OAAS,GAgB1BmB,eAAgB,SAAUJ,EAASC,EAASM,EAAiBJ,EAAiBnuE,EAAiByuE,GAG3F,MAAuB,mBAAZR,IAA4BD,EAAQ7hH,OAASm/B,EAAOkB,OAASwhF,EAAQ7hH,OAASm/B,EAAOsB,aAM5FohF,GAAWC,GAAWD,EAAQtsE,QAAUusE,EAAQvsE,SAG5CssE,EAAQ7hH,MAAQm/B,EAAOW,QAAU+hF,EAAQ7hH,MAAQm/B,EAAOgB,WAEpD2hF,EAAQ9hH,MAAQm/B,EAAOW,QAAUgiF,EAAQ9hH,MAAQm/B,EAAOgB,WAExDpjC,KAAKwlH,sBAAsBV,EAASC,EAASM,EAAiBJ,EAAiBnuE,EAAiByuE,GAE3FR,EAAQ9hH,MAAQm/B,EAAOkB,OAASyhF,EAAQ9hH,MAAQm/B,EAAOsB,QAE5D1jC,KAAKylH,qBAAqBX,EAASC,EAASM,EAAiBJ,EAAiBnuE,EAAiByuE,GAE1FR,EAAQ9hH,MAAQm/B,EAAOqB,cAE5BzjC,KAAK0lH,4BAA4BZ,EAASC,EAASM,EAAiBJ,EAAiBnuE,GAIpFguE,EAAQ7hH,MAAQm/B,EAAOkB,MAExByhF,EAAQ9hH,MAAQm/B,EAAOW,QAAUgiF,EAAQ9hH,MAAQm/B,EAAOgB,WAExDpjC,KAAKylH,qBAAqBV,EAASD,EAASO,EAAiBJ,EAAiBnuE,EAAiByuE,GAE1FR,EAAQ9hH,MAAQm/B,EAAOkB,OAASyhF,EAAQ9hH,MAAQm/B,EAAOsB,QAE5D1jC,KAAK2lH,oBAAoBb,EAASC,EAASM,EAAiBJ,EAAiBnuE,EAAiByuE,GAEzFR,EAAQ9hH,MAAQm/B,EAAOqB,cAE5BzjC,KAAK4lH,2BAA2Bd,EAASC,EAASM,EAAiBJ,EAAiBnuE,GAInFguE,EAAQ7hH,MAAQm/B,EAAOqB,aAExBshF,EAAQ9hH,MAAQm/B,EAAOW,QAAUgiF,EAAQ9hH,MAAQm/B,EAAOgB,WAExDpjC,KAAK0lH,4BAA4BX,EAASD,EAASO,EAAiBJ,EAAiBnuE,IAEhFiuE,EAAQ9hH,MAAQm/B,EAAOkB,OAASyhF,EAAQ9hH,MAAQm/B,EAAOsB,UAE5D1jC,KAAK4lH,2BAA2Bb,EAASD,EAASO,EAAiBJ,EAAiBnuE,GAInFguE,EAAQ7hH,MAAQm/B,EAAOsB,UAExBqhF,EAAQ9hH,MAAQm/B,EAAOW,QAAUgiF,EAAQ9hH,MAAQm/B,EAAOgB,WAExDpjC,KAAKylH,qBAAqBV,EAASD,EAASO,EAAiBJ,EAAiBnuE,EAAiByuE,GAE1FR,EAAQ9hH,MAAQm/B,EAAOkB,OAASyhF,EAAQ9hH,MAAQm/B,EAAOsB,QAE5D1jC,KAAK2lH,oBAAoBb,EAASC,EAASM,EAAiBJ,EAAiBnuE,EAAiByuE,GAEzFR,EAAQ9hH,MAAQm/B,EAAOqB,cAE5BzjC,KAAK4lH,2BAA2Bd,EAASC,EAASM,EAAiBJ,EAAiBnuE,UA/D5F92C,MAAK6lH,mBAAmBf,EAASO,EAAiBJ,EAAiBnuE,EAAiByuE,IAmF5FC,sBAAuB,SAAUM,EAASC,EAASV,EAAiBJ,EAAiBnuE,EAAiByuE,GAElG,MAAKO,GAAQxxD,MAASyxD,EAAQzxD,MAK1Bt0D,KAAKgmH,SAASF,EAAQxxD,KAAMyxD,EAAQzxD,KAAM2wD,EAAiBnuE,EAAiByuE,KAExEF,GAEAA,EAAgBthH,KAAK+yC,EAAiBgvE,EAASC,GAGnD/lH,KAAK+jH,WAGF,IAbI,GA6Bf0B,qBAAsB,SAAU3xF,EAAQinD,EAAOsqC,EAAiBJ,EAAiBnuE,EAAiByuE,GAE9F,GAAqB,IAAjBxqC,EAAM12E,QAAiByvB,EAAOwgC,KAKlC,GAAIxgC,EAAOwgC,KAAK+uD,cAAgBrjH,KAAKqjH,aAEjC,IAAK,GAAIl/G,GAAI,EAAGm3B,EAAMy/C,EAAM3uE,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAE9C42E,EAAM3uE,SAASjI,IAAM42E,EAAM3uE,SAASjI,GAAGq0C,QAEvCx4C,KAAKwlH,sBAAsB1xF,EAAQinD,EAAM3uE,SAASjI,GAAIkhH,EAAiBJ,EAAiBnuE,EAAiByuE,OAKrH,CAEIvlH,KAAKk/G,SAASpvF,QAEd9vB,KAAKk/G,SAAS72F,MAAMroB,KAAKmyC,KAAKC,MAAMvnC,OAAOtG,EAAGvE,KAAKmyC,KAAKC,MAAMvnC,OAAOrG,EAAGxE,KAAKmyC,KAAKC,MAAMvnC,OAAO1D,MAAOnH,KAAKmyC,KAAKC,MAAMvnC,OAAOzD,OAAQpH,KAAK6+F,WAAY7+F,KAAK8+F,WAE3J9+F,KAAKk/G,SAAS/f,SAASpkB,GAEvB/6E,KAAKimH,YAAcjmH,KAAKk/G,SAAS5f,SAASxrE,EAE1C,KAAK,GAAI3vB,GAAI,EAAGm3B,EAAMt7B,KAAKimH,YAAY5hH,OAAYi3B,EAAJn3B,EAASA,IAGhDnE,KAAKgmH,SAASlyF,EAAOwgC,KAAMt0D,KAAKimH,YAAY9hH,GAAI8gH,EAAiBnuE,EAAiByuE,KAE9EF,GAEAA,EAAgBthH,KAAK+yC,EAAiBhjB,EAAQ9zB,KAAKimH,YAAY9hH,GAAG2vB,QAGtE9zB,KAAK+jH,YAmBrB8B,mBAAoB,SAAU9qC,EAAOsqC,EAAiBJ,EAAiBnuE,EAAiByuE,GAEpF,GAAqB,IAAjBxqC,EAAM12E,OAOV,IAAK,GAFDi3B,GAAMy/C,EAAM3uE,SAAS/H,OAEhBF,EAAI,EAAOm3B,EAAM,EAAVn3B,EAAaA,IAEzB,IAAK,GAAIU,GAAIV,EAAI,EAAOm3B,EAAJz2B,EAASA,IAErBk2E,EAAM3uE,SAASjI,IAAM42E,EAAM3uE,SAASvH,IAAMk2E,EAAM3uE,SAASjI,GAAGq0C,QAAUuiC,EAAM3uE,SAASvH,GAAG2zC,QAExFx4C,KAAKwlH,sBAAsBzqC,EAAM3uE,SAASjI,GAAI42E,EAAM3uE,SAASvH,GAAIwgH,EAAiBJ,EAAiBnuE,EAAiByuE,IAmBpII,oBAAqB,SAAUO,EAAQC,EAAQd,EAAiBJ,EAAiBnuE,EAAiByuE,GAE9F,GAAsB,IAAlBW,EAAO7hH,QAAkC,IAAlB8hH,EAAO9hH,OAKlC,IAAK,GAAIF,GAAI,EAAGm3B,EAAM4qF,EAAO95G,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAE/C+hH,EAAO95G,SAASjI,GAAGq0C,SAEf0tE,EAAO95G,SAASjI,GAAGlB,OAASm/B,EAAOkB,MAEnCtjC,KAAK2lH,oBAAoBO,EAAO95G,SAASjI,GAAIgiH,EAAQd,EAAiBJ,EAAiBnuE,EAAiByuE,GAIxGvlH,KAAKylH,qBAAqBS,EAAO95G,SAASjI,GAAIgiH,EAAQd,EAAiBJ,EAAiBnuE,EAAiByuE,KAmBzHG,4BAA6B,SAAU5xF,EAAQsyF,EAAcf,EAAiBJ,EAAiBnuE,GAE3F,GAAKhjB,EAAOwgC,OAKZt0D,KAAK6jH,SAAWuC,EAAaC,SACzBvyF,EAAOwgC,KAAK3sD,SAASpD,EAAIuvB,EAAOwgC,KAAKgyD,YAAY/hH,EACjDuvB,EAAOwgC,KAAK3sD,SAASnD,EAAIsvB,EAAOwgC,KAAKgyD,YAAY9hH,EACjDsvB,EAAOwgC,KAAKntD,MAAQ2sB,EAAOwgC,KAAKgyD,YAAY/hH,EAC5CuvB,EAAOwgC,KAAKltD,OAAS0sB,EAAOwgC,KAAKgyD,YAAY9hH,GAC7C,GAAO,GAEkB,IAAzBxE,KAAK6jH,SAASx/G,QAKlB,IAAK,GAAIF,GAAI,EAAGA,EAAInE,KAAK6jH,SAASx/G,OAAQF,IAElC8gH,EAEIA,EAAgBlhH,KAAK+yC,EAAiBhjB,EAAQ9zB,KAAK6jH,SAAS1/G,KAExDnE,KAAKumH,aAAapiH,EAAG2vB,EAAOwgC,KAAMt0D,KAAK6jH,SAAS1/G,MAEhDnE,KAAK+jH,SAEDsB,GAEAA,EAAgBthH,KAAK+yC,EAAiBhjB,EAAQ9zB,KAAK6jH,SAAS1/G,KAOpEnE,KAAKumH,aAAapiH,EAAG2vB,EAAOwgC,KAAMt0D,KAAK6jH,SAAS1/G,MAEhDnE,KAAK+jH,SAEDsB,GAEAA,EAAgBthH,KAAK+yC,EAAiBhjB,EAAQ9zB,KAAK6jH,SAAS1/G,MAoBhFyhH,2BAA4B,SAAU7qC,EAAOqrC,EAAcf,EAAiBJ,EAAiBnuE,GAEzF,GAAqB,IAAjBikC,EAAM12E,OAKV,IAAK,GAAIF,GAAI,EAAGm3B,EAAMy/C,EAAM3uE,SAAS/H,OAAYi3B,EAAJn3B,EAASA,IAE9C42E,EAAM3uE,SAASjI,GAAGq0C,QAElBx4C,KAAK0lH,4BAA4B3qC,EAAM3uE,SAASjI,GAAIiiH,EAAcf,EAAiBJ,EAAiBnuE,IAkBhHkvE,SAAU,SAAUQ,EAAOC,EAAOxB,EAAiBnuE,EAAiByuE,GAEhE,MAAKiB,GAAMt3F,QAAWu3F,EAAMv3F,QAAWlvB,KAAKmoC,WAAWq+E,EAAOC,GAM1DxB,GAAmBA,EAAgBlhH,KAAK+yC,EAAiB0vE,EAAM1yF,OAAQ2yF,EAAM3yF,WAAY,GAElF,GAQP9zB,KAAK8jH,QAFL9jH,KAAKojH,QAAUlhH,KAAKirB,IAAIntB,KAAKgjH,QAAQx+G,EAAIgiH,EAAMxD,QAAQx+G,GAAKtC,KAAKirB,IAAIntB,KAAKgjH,QAAQz+G,EAAIiiH,EAAMxD,QAAQz+G,GAEpFvE,KAAK0mH,UAAUF,EAAOC,EAAOlB,IAAgBvlH,KAAK2mH,UAAUH,EAAOC,EAAOlB,GAI1EvlH,KAAK2mH,UAAUH,EAAOC,EAAOlB,IAAgBvlH,KAAK0mH,UAAUF,EAAOC,EAAOlB,GAG1FA,GAGO,EAIAvlH,KAAK8jH,UA5BL,GAyCf37E,WAAY,SAAUq+E,EAAOC,GAEzB,MAAID,GAAMtgF,OAASugF,EAAM9+G,SAASpD,GAEvB,EAGPiiH,EAAMv+E,QAAUw+E,EAAM9+G,SAASnD,GAExB,EAGPgiH,EAAM7+G,SAASpD,GAAKkiH,EAAMvgF,OAEnB,EAGPsgF,EAAM7+G,SAASnD,GAAKiiH,EAAMx+E,QAEnB,GAGJ,GAcXy+E,UAAW,SAAUF,EAAOC,EAAOlB,GAG/B,MAAIiB,GAAMI,WAAaH,EAAMG,WAElB,GAGX5mH,KAAKsjH,SAAW,EAGZtjH,KAAKmoC,WAAWq+E,EAAOC,KAEvBzmH,KAAKujH,YAAciD,EAAMK,YAAcJ,EAAMI,YAAc7mH,KAAKkjH,aAEzC,IAAnBsD,EAAMn/C,UAAqC,IAAnBo/C,EAAMp/C,UAG9Bm/C,EAAMM,UAAW,EACjBL,EAAMK,UAAW,GAEZN,EAAMn/C,SAAWo/C,EAAMp/C,UAG5BrnE,KAAKsjH,SAAWkD,EAAMtgF,MAAQugF,EAAMliH,EAE/BvE,KAAKsjH,SAAWtjH,KAAKujH,aAAgBiD,EAAMvD,eAAe/8E,SAAU,GAASugF,EAAMxD,eAAe98E,QAAS,EAE5GnmC,KAAKsjH,SAAW,GAIhBkD,EAAMO,SAASC,MAAO,EACtBR,EAAMO,SAAS7gF,OAAQ,EACvBugF,EAAMM,SAASC,MAAO,EACtBP,EAAMM,SAAS5gF,MAAO,IAGrBqgF,EAAMn/C,SAAWo/C,EAAMp/C,WAG5BrnE,KAAKsjH,SAAWkD,EAAMjiH,EAAIkiH,EAAMt/G,MAAQs/G,EAAMliH,GAExCvE,KAAKsjH,SAAWtjH,KAAKujH,aAAgBiD,EAAMvD,eAAe98E,QAAS,GAASsgF,EAAMxD,eAAe/8E,SAAU,EAE7GlmC,KAAKsjH,SAAW,GAIhBkD,EAAMO,SAASC,MAAO,EACtBR,EAAMO,SAAS5gF,MAAO,EACtBsgF,EAAMM,SAASC,MAAO,EACtBP,EAAMM,SAAS7gF,OAAQ,IAK/BsgF,EAAMS,SAAWjnH,KAAKsjH,SACtBmD,EAAMQ,SAAWjnH,KAAKsjH,SAGA,IAAlBtjH,KAAKsjH,UAEDiC,GAAeiB,EAAMU,iBAAmBT,EAAMS,iBAEvC,GAGXlnH,KAAKwjH,WAAagD,EAAMhC,SAASjgH,EACjCvE,KAAKyjH,WAAagD,EAAMjC,SAASjgH,EAE5BiiH,EAAMI,WAAcH,EAAMG,UAgBrBJ,EAAMI,UAKNH,EAAMG,YAEZH,EAAMliH,GAAKvE,KAAKsjH,SAChBmD,EAAMjC,SAASjgH,EAAIvE,KAAKwjH,WAAaxjH,KAAKyjH,WAAagD,EAAMU,OAAO5iH,IANpEiiH,EAAMjiH,EAAIiiH,EAAMjiH,EAAIvE,KAAKsjH,SACzBkD,EAAMhC,SAASjgH,EAAIvE,KAAKyjH,WAAazjH,KAAKwjH,WAAagD,EAAMW,OAAO5iH,IAjBpEvE,KAAKsjH,UAAY,GAEjBkD,EAAMjiH,EAAIiiH,EAAMjiH,EAAIvE,KAAKsjH,SACzBmD,EAAMliH,GAAKvE,KAAKsjH,SAEhBtjH,KAAK0jH,cAAgBxhH,KAAKgrB,KAAMltB,KAAKyjH,WAAazjH,KAAKyjH,WAAagD,EAAMW,KAAQZ,EAAMY,OAAUpnH,KAAKyjH,WAAa,EAAK,EAAI,IAC7HzjH,KAAK2jH,cAAgBzhH,KAAKgrB,KAAMltB,KAAKwjH,WAAaxjH,KAAKwjH,WAAagD,EAAMY,KAAQX,EAAMW,OAAUpnH,KAAKwjH,WAAa,EAAK,EAAI,IAC7HxjH,KAAK4jH,SAAuD,IAA3C5jH,KAAK0jH,cAAgB1jH,KAAK2jH,eAC3C3jH,KAAK0jH,eAAiB1jH,KAAK4jH,SAC3B5jH,KAAK2jH,eAAiB3jH,KAAK4jH,SAE3B4C,EAAMhC,SAASjgH,EAAIvE,KAAK4jH,SAAW5jH,KAAK0jH,cAAgB8C,EAAMW,OAAO5iH,EACrEkiH,EAAMjC,SAASjgH,EAAIvE,KAAK4jH,SAAW5jH,KAAK2jH,cAAgB8C,EAAMU,OAAO5iH,IAalE,IAIR,IAcXoiH,UAAW,SAAUH,EAAOC,EAAOlB,GAG/B,MAAIiB,GAAMI,WAAaH,EAAMG,WAElB,GAGX5mH,KAAKsjH,SAAW,EAGZtjH,KAAKmoC,WAAWq+E,EAAOC,KAEvBzmH,KAAKujH,YAAciD,EAAMa,YAAcZ,EAAMY,YAAcrnH,KAAKkjH,aAEzC,IAAnBsD,EAAMpgD,UAAqC,IAAnBqgD,EAAMrgD,UAG9BogD,EAAMM,UAAW,EACjBL,EAAMK,UAAW,GAEZN,EAAMpgD,SAAWqgD,EAAMrgD,UAG5BpmE,KAAKsjH,SAAWkD,EAAMv+E,OAASw+E,EAAMjiH,EAEhCxE,KAAKsjH,SAAWtjH,KAAKujH,aAAgBiD,EAAMvD,eAAeplD,QAAS,GAAS4oD,EAAMxD,eAAerlD,MAAO,EAEzG59D,KAAKsjH,SAAW,GAIhBkD,EAAMO,SAASC,MAAO,EACtBR,EAAMO,SAASlpD,MAAO,EACtB4oD,EAAMM,SAASC,MAAO,EACtBP,EAAMM,SAASnpD,IAAK,IAGnB4oD,EAAMpgD,SAAWqgD,EAAMrgD,WAG5BpmE,KAAKsjH,SAAWkD,EAAMhiH,EAAIiiH,EAAMx+E,QAE1BjoC,KAAKsjH,SAAWtjH,KAAKujH,aAAgBiD,EAAMvD,eAAerlD,MAAO,GAAS6oD,EAAMxD,eAAeplD,QAAS,EAE1G79D,KAAKsjH,SAAW,GAIhBkD,EAAMO,SAASC,MAAO,EACtBR,EAAMO,SAASnpD,IAAK,EACpB6oD,EAAMM,SAASC,MAAO,EACtBP,EAAMM,SAASlpD,MAAO,IAK9B2oD,EAAMc,SAAWtnH,KAAKsjH,SACtBmD,EAAMa,SAAWtnH,KAAKsjH,SAGA,IAAlBtjH,KAAKsjH,UAEDiC,GAAeiB,EAAMe,iBAAmBd,EAAMc,iBAEvC,GAGXvnH,KAAKwjH,WAAagD,EAAMhC,SAAShgH,EACjCxE,KAAKyjH,WAAagD,EAAMjC,SAAShgH,EAE5BgiH,EAAMI,WAAcH,EAAMG,UAgBrBJ,EAAMI,UAWNH,EAAMG,YAEZH,EAAMjiH,GAAKxE,KAAKsjH,SAChBmD,EAAMjC,SAAShgH,EAAIxE,KAAKwjH,WAAaxjH,KAAKyjH,WAAagD,EAAMU,OAAO3iH,EAGhEgiH,EAAMgB,QAENf,EAAMliH,GAAKiiH,EAAMjiH,EAAIiiH,EAAMruE,KAAK5zC,KAjBpCiiH,EAAMhiH,EAAIgiH,EAAMhiH,EAAIxE,KAAKsjH,SACzBkD,EAAMhC,SAAShgH,EAAIxE,KAAKyjH,WAAazjH,KAAKwjH,WAAagD,EAAMW,OAAO3iH,EAGhEiiH,EAAMe,QAENhB,EAAMjiH,GAAKkiH,EAAMliH,EAAIkiH,EAAMtuE,KAAK5zC,KAtBpCvE,KAAKsjH,UAAY,GAEjBkD,EAAMhiH,EAAIgiH,EAAMhiH,EAAIxE,KAAKsjH,SACzBmD,EAAMjiH,GAAKxE,KAAKsjH,SAEhBtjH,KAAK0jH,cAAgBxhH,KAAKgrB,KAAMltB,KAAKyjH,WAAazjH,KAAKyjH,WAAagD,EAAMW,KAAQZ,EAAMY,OAAUpnH,KAAKyjH,WAAa,EAAK,EAAI,IAC7HzjH,KAAK2jH,cAAgBzhH,KAAKgrB,KAAMltB,KAAKwjH,WAAaxjH,KAAKwjH,WAAagD,EAAMY,KAAQX,EAAMW,OAAUpnH,KAAKwjH,WAAa,EAAK,EAAI,IAC7HxjH,KAAK4jH,SAAuD,IAA3C5jH,KAAK0jH,cAAgB1jH,KAAK2jH,eAC3C3jH,KAAK0jH,eAAiB1jH,KAAK4jH,SAC3B5jH,KAAK2jH,eAAiB3jH,KAAK4jH,SAE3B4C,EAAMhC,SAAShgH,EAAIxE,KAAK4jH,SAAW5jH,KAAK0jH,cAAgB8C,EAAMW,OAAO3iH,EACrEiiH,EAAMjC,SAAShgH,EAAIxE,KAAK4jH,SAAW5jH,KAAK2jH,cAAgB8C,EAAMU,OAAO3iH,IAyBlE,IAKR,IAaX+hH,aAAc,SAAUpiH,EAAGmwD,EAAMmzD,GAG7B,IAAKnzD,EAAKplC,SAAWu4F,EAAKt/E,WAAWmsB,EAAK3sD,SAASpD,EAAG+vD,EAAK3sD,SAASnD,EAAG8vD,EAAKpuB,MAAOouB,EAAKrsB,QAGpF,OAAO,CAMX,IAAIw/E,EAAKC,oBAAsBD,EAAKC,kBAAkB3jH,KAAK0jH,EAAKE,yBAA0BrzD,EAAKxgC,OAAQ2zF,GAGnG,OAAO,CAEN,IAAIA,EAAKvgE,MAAMomB,UAAUm6C,EAAK96G,SAAW86G,EAAKvgE,MAAMomB,UAAUm6C,EAAK96G,OAAO0N,SAAStW,KAAK0jH,EAAKvgE,MAAMomB,UAAUm6C,EAAK96G,OAAOmqC,gBAAiBwd,EAAKxgC,OAAQ2zF,GAGxJ,OAAO,CAIX,MAAKA,EAAKG,UAAaH,EAAKI,WAAcJ,EAAKK,SAAYL,EAAKM,YAG5D,OAAO,CAGX,IAAIptF,GAAK,EACLC,EAAK,EACLvsB,EAAO,EACPE,EAAO,CAoBX,IAlBI+lD,EAAKuyD,YAAcvyD,EAAK+yD,YAGxBh5G,EAAO,GAEFimD,EAAKuyD,YAAcvyD,EAAK+yD,cAG7B94G,EAAO,IAGW,IAAlB+lD,EAAK+S,UAAoC,IAAlB/S,EAAK8R,WAAmBqhD,EAAKG,UAAYH,EAAKI,aAAeJ,EAAKK,SAAWL,EAAKM,cAGzG15G,EAAOnM,KAAK23B,IAAI33B,KAAKirB,IAAImnC,EAAK3sD,SAASpD,EAAIkjH,EAAKvhF,OAAQhkC,KAAKirB,IAAImnC,EAAKpuB,MAAQuhF,EAAKthF,OACnF53B,EAAOrM,KAAK23B,IAAI33B,KAAKirB,IAAImnC,EAAK3sD,SAASnD,EAAIijH,EAAKx/E,QAAS/lC,KAAKirB,IAAImnC,EAAKrsB,OAASw/E,EAAKz/E,OAG9Ez5B,EAAPF,EACJ,CACI,IAAIo5G,EAAKG,UAAYH,EAAKI,aAEtBltF,EAAK36B,KAAKgoH,WAAW1zD,EAAMmzD,GAGhB,IAAP9sF,IAAa8sF,EAAKt/E,WAAWmsB,EAAK3sD,SAASpD,EAAG+vD,EAAK3sD,SAASnD,EAAG8vD,EAAKpuB,MAAOouB,EAAKrsB,SAEhF,OAAO,GAIXw/E,EAAKK,SAAWL,EAAKM,cAErBntF,EAAK56B,KAAKioH,WAAW3zD,EAAMmzD,QAInC,CACI,IAAIA,EAAKK,SAAWL,EAAKM,cAErBntF,EAAK56B,KAAKioH,WAAW3zD,EAAMmzD,GAGhB,IAAP7sF,IAAa6sF,EAAKt/E,WAAWmsB,EAAK3sD,SAASpD,EAAG+vD,EAAK3sD,SAASnD,EAAG8vD,EAAKpuB,MAAOouB,EAAKrsB,SAEhF,OAAO,GAIXw/E,EAAKG,UAAYH,EAAKI,aAEtBltF,EAAK36B,KAAKgoH,WAAW1zD,EAAMmzD,IAInC,MAAe,KAAP9sF,GAAmB,IAAPC,GAaxBotF,WAAY,SAAU1zD,EAAMmzD,GAExB,GAAI9sF,GAAK,CAkCT,OAhCI25B,GAAK+S,SAAW,IAAM/S,EAAK4zD,QAAQ/hF,MAAQshF,EAAKU,cAAgB7zD,EAAK2uD,eAAe98E,KAGhFshF,EAAKI,WAAavzD,EAAK/vD,EAAIkjH,EAAKvhF,QAEhCvL,EAAK25B,EAAK/vD,EAAIkjH,EAAKvhF,MAEfvL,GAAM36B,KAAKmjH,YAEXxoF,EAAK,IAIR25B,EAAK+S,SAAW,IAAM/S,EAAK4zD,QAAQhiF,OAASuhF,EAAKW,aAAe9zD,EAAK2uD,eAAe/8E,OAGrFuhF,EAAKG,UAAYtzD,EAAKpuB,MAAQuhF,EAAKthF,OAEnCxL,EAAK25B,EAAKpuB,MAAQuhF,EAAKthF,KAEnBxL,EAAK36B,KAAKmjH,YAEVxoF,EAAK,IAKN,IAAPA,GAEA36B,KAAKqoH,uBAAuB/zD,EAAM35B,GAG/BA,GAaXstF,WAAY,SAAU3zD,EAAMmzD,GAExB,GAAI7sF,GAAK,CAkCT,OAhCI05B,GAAK8R,SAAW,IAAM9R,EAAK4zD,QAAQtqD,IAAM6pD,EAAKa,aAAeh0D,EAAK2uD,eAAerlD,GAG7E6pD,EAAKM,YAAczzD,EAAK9vD,EAAIijH,EAAKx/E,SAEjCrN,EAAK05B,EAAK9vD,EAAIijH,EAAKx/E,OAEfrN,GAAM56B,KAAKmjH,YAEXvoF,EAAK,IAIR05B,EAAK8R,SAAW,IAAM9R,EAAK4zD,QAAQrqD,MAAQ4pD,EAAKc,WAAaj0D,EAAK2uD,eAAeplD,MAGlF4pD,EAAKK,SAAWxzD,EAAKrsB,OAASw/E,EAAKz/E,MAEnCpN,EAAK05B,EAAKrsB,OAASw/E,EAAKz/E,IAEpBpN,EAAK56B,KAAKmjH,YAEVvoF,EAAK,IAKN,IAAPA,GAEA56B,KAAKwoH,uBAAuBl0D,EAAM15B,GAG/BA,GAaXytF,uBAAwB,SAAU/zD,EAAM/vD,GAE5B,EAAJA,EAEA+vD,EAAK4zD,QAAQ/hF,MAAO,EAEf5hC,EAAI,IAET+vD,EAAK4zD,QAAQhiF,OAAQ,GAGzBouB,EAAK3sD,SAASpD,GAAKA,EAIf+vD,EAAKkwD,SAASjgH,EAFI,IAAlB+vD,EAAK6yD,OAAO5iH,EAEM,GAIC+vD,EAAKkwD,SAASjgH,EAAI+vD,EAAK6yD,OAAO5iH,GAazDikH,uBAAwB,SAAUl0D,EAAM9vD,GAE5B,EAAJA,EAEA8vD,EAAK4zD,QAAQtqD,IAAK,EAEbp5D,EAAI,IAET8vD,EAAK4zD,QAAQrqD,MAAO,GAGxBvJ,EAAK3sD,SAASnD,GAAKA,EAIf8vD,EAAKkwD,SAAShgH,EAFI,IAAlB8vD,EAAK6yD,OAAO3iH,EAEM,GAIC8vD,EAAKkwD,SAAShgH,EAAI8vD,EAAK6yD,OAAO3iH,GAiBzDikH,uBAAwB,SAAUpsE,EAAS0+B,EAAO1gE,EAAUy8B,GAExD,MAAqB,KAAjBikC,EAAM12E,QAAiBg4C,EAAQ7D,OAK5Bx4C,KAAK0oH,qBAAqBrsE,EAAQ93C,EAAG83C,EAAQ73C,EAAGu2E,EAAO1gE,EAAUy8B,EAAiBuF,GALzF,QAsBJqsE,qBAAsB,SAAUnkH,EAAGC,EAAGu2E,EAAO1gE,EAAUy8B,EAAiB6xE,GAEpE3oH,KAAKk/G,SAASpvF,QAEd9vB,KAAKk/G,SAAS72F,MAAMroB,KAAKmyC,KAAKC,MAAMvnC,OAAOtG,EAAGvE,KAAKmyC,KAAKC,MAAMvnC,OAAOrG,EAAGxE,KAAKmyC,KAAKC,MAAMvnC,OAAO1D,MAAOnH,KAAKmyC,KAAKC,MAAMvnC,OAAOzD,OAAQpH,KAAK6+F,WAAY7+F,KAAK8+F,WAE3J9+F,KAAKk/G,SAAS/f,SAASpkB,EAEvB,IAAIx/C,GAAO,GAAI6G,GAAOl7B,UAAU3C,EAAGC,EAAG,EAAG,GACrCmjC,IAEJ3nC,MAAKimH,YAAcjmH,KAAKk/G,SAAS5f,SAAS/jE,EAE1C,KAAK,GAAIp3B,GAAI,EAAGm3B,EAAMt7B,KAAKimH,YAAY5hH,OAAYi3B,EAAJn3B,EAASA,IAEhDnE,KAAKimH,YAAY9hH,GAAGg3D,QAAQ52D,EAAGC,KAE3B6V,GAEAA,EAAStW,KAAK+yC,EAAiB6xE,EAAa3oH,KAAKimH,YAAY9hH,GAAG2vB,QAGpE6T,EAAOrjC,KAAKtE,KAAKimH,YAAY9hH,GAAG2vB,QAIxC,OAAO6T,IAmBXihF,aAAc,SAAU34F,EAAeqxD,EAAavqB,EAAO8xD,GAgBvD,MAdqB,mBAAV9xD,KAAyBA,EAAQ,IACrB,mBAAZ8xD,KAA2BA,EAAU,GAEhD7oH,KAAKgkH,OAAS9hH,KAAKsnC,MAAM83C,EAAY98E,EAAIyrB,EAAczrB,EAAG88E,EAAY/8E,EAAI0rB,EAAc1rB,GAEpFskH,EAAU,IAGV9xD,EAAQ/2D,KAAK8oH,gBAAgB74F,EAAeqxD,IAAgBunC,EAAU,MAG1E54F,EAAcqkC,KAAKkwD,SAASjgH,EAAIrC,KAAKqE,IAAIvG,KAAKgkH,QAAUjtD,EACxD9mC,EAAcqkC,KAAKkwD,SAAShgH,EAAItC,KAAKsE,IAAIxG,KAAKgkH,QAAUjtD,EAEjD/2D,KAAKgkH,QAkBhB+E,cAAe,SAAU94F,EAAe8mC,EAAO1a,EAASwsE,GAiBpD,MAfqB,mBAAV9xD,KAAyBA,EAAQ,IAC5C1a,EAAUA,GAAWr8C,KAAKmyC,KAAK2B,MAAMid,cACd,mBAAZ83D,KAA2BA,EAAU,GAEhD7oH,KAAKgkH,OAAShkH,KAAKgpH,eAAe/4F,EAAeosB,GAE7CwsE,EAAU,IAGV9xD,EAAQ/2D,KAAKipH,kBAAkBh5F,EAAeosB,IAAYwsE,EAAU,MAGxE54F,EAAcqkC,KAAKkwD,SAASjgH,EAAIrC,KAAKqE,IAAIvG,KAAKgkH,QAAUjtD,EACxD9mC,EAAcqkC,KAAKkwD,SAAShgH,EAAItC,KAAKsE,IAAIxG,KAAKgkH,QAAUjtD,EAEjD/2D,KAAKgkH,QAoBhBkF,SAAU,SAAUj5F,EAAe1rB,EAAGC,EAAGuyD,EAAO8xD,GAgB5C,MAdqB,mBAAV9xD,KAAyBA,EAAQ,IACrB,mBAAZ8xD,KAA2BA,EAAU,GAEhD7oH,KAAKgkH,OAAS9hH,KAAKsnC,MAAMhlC,EAAIyrB,EAAczrB,EAAGD,EAAI0rB,EAAc1rB,GAE5DskH,EAAU,IAGV9xD,EAAQ/2D,KAAKmpH,aAAal5F,EAAe1rB,EAAGC,IAAMqkH,EAAU,MAGhE54F,EAAcqkC,KAAKkwD,SAASjgH,EAAIrC,KAAKqE,IAAIvG,KAAKgkH,QAAUjtD,EACxD9mC,EAAcqkC,KAAKkwD,SAAShgH,EAAItC,KAAKsE,IAAIxG,KAAKgkH,QAAUjtD,EAEjD/2D,KAAKgkH,QAchBoF,kBAAmB,SAAU9iH,EAAOywD,EAAOz5B,GAKvC,MAHqB,mBAAVy5B,KAAyBA,EAAQ,IAC5Cz5B,EAAQA,GAAS,GAAI8E,GAAOn+B,MAErBq5B,EAAM+J,MAAOnlC,KAAKqE,IAAIvG,KAAKmyC,KAAK6B,KAAK5L,SAAS9hC,IAAUywD,EAAS70D,KAAKsE,IAAIxG,KAAKmyC,KAAK6B,KAAK5L,SAAS9hC,IAAUywD,IAcvHsyD,qBAAsB,SAAUthH,EAAUgvD,EAAOz5B,GAK7C,MAHqB,mBAAVy5B,KAAyBA,EAAQ,IAC5Cz5B,EAAQA,GAAS,GAAI8E,GAAOn+B,MAErBq5B,EAAM+J,MAAOnlC,KAAKqE,IAAIwB,GAAYgvD,EAAS70D,KAAKsE,IAAIuB,GAAYgvD,IAc3EuyD,yBAA0B,SAAUvhH,EAAUgvD,EAAOz5B,GAKjD,MAHqB,mBAAVy5B,KAAyBA,EAAQ,IAC5Cz5B,EAAQA,GAAS,GAAI8E,GAAOn+B,MAErBq5B,EAAM+J,MAAOnlC,KAAKqE,IAAIwB,GAAYgvD,EAAS70D,KAAKsE,IAAIuB,GAAYgvD,IAkB3EwyD,mBAAoB,SAAUt5F,EAAeqxD,EAAavqB,EAAOyyD,EAAWC,GAWxE,MATqB,mBAAV1yD,KAAyBA,EAAQ,IACnB,mBAAdyyD,KAA6BA,EAAY,KAC3B,mBAAdC,KAA6BA,EAAY,KAEpDzpH,KAAKgkH,OAAShkH,KAAKs6F,aAAarqE,EAAeqxD,GAE/CrxD,EAAcqkC,KAAKmwD,aAAap9E,MAAMnlC,KAAKqE,IAAIvG,KAAKgkH,QAAUjtD,EAAO70D,KAAKsE,IAAIxG,KAAKgkH,QAAUjtD,GAC7F9mC,EAAcqkC,KAAKqwD,YAAYt9E,MAAMmiF,EAAWC,GAEzCzpH,KAAKgkH,QAkBhB0F,oBAAqB,SAAUz5F,EAAeosB,EAAS0a,EAAOyyD,EAAWC,GAYrE,MAVqB,mBAAV1yD,KAAyBA,EAAQ,IACrB,mBAAZ1a,KAA2BA,EAAUr8C,KAAKmyC,KAAK2B,MAAMid,eACvC,mBAAdy4D,KAA6BA,EAAY,KAC3B,mBAAdC,KAA6BA,EAAY,KAEpDzpH,KAAKgkH,OAAShkH,KAAKgpH,eAAe/4F,EAAeosB,GAEjDpsB,EAAcqkC,KAAKmwD,aAAap9E,MAAMnlC,KAAKqE,IAAIvG,KAAKgkH,QAAUjtD,EAAO70D,KAAKsE,IAAIxG,KAAKgkH,QAAUjtD,GAC7F9mC,EAAcqkC,KAAKqwD,YAAYt9E,MAAMmiF,EAAWC,GAEzCzpH,KAAKgkH,QAmBhB2F,eAAgB,SAAU15F,EAAe1rB,EAAGC,EAAGuyD,EAAOyyD,EAAWC,GAW7D,MATqB,mBAAV1yD,KAAyBA,EAAQ,IACnB,mBAAdyyD,KAA6BA,EAAY,KAC3B,mBAAdC,KAA6BA,EAAY,KAEpDzpH,KAAKgkH,OAAShkH,KAAK4pH,UAAU35F,EAAe1rB,EAAGC,GAE/CyrB,EAAcqkC,KAAKmwD,aAAap9E,MAAMnlC,KAAKqE,IAAIvG,KAAKgkH,QAAUjtD,EAAO70D,KAAKsE,IAAIxG,KAAKgkH,QAAUjtD,GAC7F9mC,EAAcqkC,KAAKqwD,YAAYt9E,MAAMmiF,EAAWC,GAEzCzpH,KAAKgkH,QAYhB8E,gBAAiB,SAAUj3G,EAAQ9H,GAK/B,MAHA/J,MAAKs4E,IAAMzmE,EAAOtN,EAAIwF,EAAOxF,EAC7BvE,KAAKu4E,IAAM1mE,EAAOrN,EAAIuF,EAAOvF,EAEtBtC,KAAKgrB,KAAKltB,KAAKs4E,IAAMt4E,KAAKs4E,IAAMt4E,KAAKu4E,IAAMv4E,KAAKu4E,MAe3D4wC,aAAc,SAAUl5F,EAAe1rB,EAAGC,GAKtC,MAHAxE,MAAKs4E,IAAMroD,EAAc1rB,EAAIA,EAC7BvE,KAAKu4E,IAAMtoD,EAAczrB,EAAIA,EAEtBtC,KAAKgrB,KAAKltB,KAAKs4E,IAAMt4E,KAAKs4E,IAAMt4E,KAAKu4E,IAAMv4E,KAAKu4E,MAc3D0wC,kBAAmB,SAAUh5F,EAAeosB,GAOxC,MALAA,GAAUA,GAAWr8C,KAAKmyC,KAAK2B,MAAMid,cAErC/wD,KAAKs4E,IAAMroD,EAAc1rB,EAAI83C,EAAQ93C,EACrCvE,KAAKu4E,IAAMtoD,EAAczrB,EAAI63C,EAAQ73C,EAE9BtC,KAAKgrB,KAAKltB,KAAKs4E,IAAMt4E,KAAKs4E,IAAMt4E,KAAKu4E,IAAMv4E,KAAKu4E,MAY3D+hB,aAAc,SAAUzoF,EAAQ9H,GAK5B,MAHA/J,MAAKs4E,IAAMvuE,EAAOxF,EAAIsN,EAAOtN,EAC7BvE,KAAKu4E,IAAMxuE,EAAOvF,EAAIqN,EAAOrN,EAEtBtC,KAAKsnC,MAAMxpC,KAAKu4E,IAAKv4E,KAAKs4E,MAarCsxC,UAAW,SAAU35F,EAAe1rB,EAAGC,GAKnC,MAHAxE,MAAKs4E,IAAM/zE,EAAI0rB,EAAc1rB,EAC7BvE,KAAKu4E,IAAM/zE,EAAIyrB,EAAczrB,EAEtBtC,KAAKsnC,MAAMxpC,KAAKu4E,IAAKv4E,KAAKs4E,MAYrC0wC,eAAgB,SAAU/4F,EAAeosB,GAOrC,MALAA,GAAUA,GAAWr8C,KAAKmyC,KAAK2B,MAAMid,cAErC/wD,KAAKs4E,IAAMj8B,EAAQ+hE,OAASnuF,EAAc1rB,EAC1CvE,KAAKu4E,IAAMl8B,EAAQgiE,OAASpuF,EAAczrB,EAEnCtC,KAAKsnC,MAAMxpC,KAAKu4E,IAAKv4E,KAAKs4E,OAoBzCl2C,EAAO0d,QAAQi8B,OAAOqjC,KAAO,SAAUtrF,GAKnC9zB,KAAK8zB,OAASA,EAKd9zB,KAAKmyC,KAAOre,EAAOqe,KAKnBnyC,KAAKiD,KAAOm/B,EAAO0d,QAAQC,OAM3B//C,KAAKkvB,QAAS,EAKdlvB,KAAK0mB,OAAS,GAAI0b,GAAOn+B,MAMzBjE,KAAK2H,SAAW,GAAIy6B,GAAOn+B,MAAM6vB,EAAOvvB,EAAGuvB,EAAOtvB,GAMlDxE,KAAKm4C,KAAO,GAAI/V,GAAOn+B,MAAMjE,KAAK2H,SAASpD,EAAGvE,KAAK2H,SAASnD,GAM5DxE,KAAK6pH,eAAgB,EAKrB7pH,KAAK+H,SAAW+rB,EAAO/rB,SAMvB/H,KAAK8pH,YAAch2F,EAAO/rB,SAM1B/H,KAAK+pH,YAAcj2F,EAAOjoB,QAAQkE,MAAM5I,MAMxCnH,KAAKgqH,aAAel2F,EAAOjoB,QAAQkE,MAAM3I,OAKzCpH,KAAKmH,MAAQ2sB,EAAO3sB,MAKpBnH,KAAKoH,OAAS0sB,EAAO1sB,OAKrBpH,KAAKsoC,UAAYpmC,KAAKirB,IAAI2G,EAAO3sB,MAAQ,GAKzCnH,KAAKwoC,WAAatmC,KAAKirB,IAAI2G,EAAO1sB,OAAS,GAK3CpH,KAAKitC,OAAS,GAAI7K,GAAOn+B,MAAM6vB,EAAOvvB,EAAIvE,KAAKsoC,UAAWxU,EAAOtvB,EAAIxE,KAAKwoC,YAK1ExoC,KAAKwkH,SAAW,GAAIpiF,GAAOn+B,MAM3BjE,KAAKiqH,YAAc,GAAI7nF,GAAOn+B,MAAM,EAAG,GAKvCjE,KAAKkqH,SAAW,GAAI9nF,GAAOn+B,MAAM,EAAG,GAKpCjE,KAAKykH,aAAe,GAAIriF,GAAOn+B,MAK/BjE,KAAK0kH,KAAO,GAAItiF,GAAOn+B,MAMvBjE,KAAK4kH,cAAe,EAKpB5kH,KAAKgjH,QAAU,GAAI5gF,GAAOn+B,MAAM,EAAG,GAKnCjE,KAAKmnH,OAAS,GAAI/kF,GAAOn+B,MAMzBjE,KAAK2kH,YAAc,GAAIviF,GAAOn+B,MAAM,IAAO,KAM3CjE,KAAKokH,gBAAkB,EAMvBpkH,KAAKqkH,oBAAsB,EAM3BrkH,KAAKskH,YAAc,EAMnBtkH,KAAKukH,WAAa,IAMlBvkH,KAAKonH,KAAO,EAMZpnH,KAAKsG,MAAQ,EAMbtG,KAAK+2D,MAAQ,EAMb/2D,KAAKmqH,OAAS/nF,EAAOM,KAMrB1iC,KAAK4mH,WAAY,EASjB5mH,KAAKwnH,OAAQ,EAQbxnH,KAAKknH,iBAAkB,EAQvBlnH,KAAKunH,iBAAkB,EAMvBvnH,KAAKinH,SAAW,EAMhBjnH,KAAKsnH,SAAW,EAMhBtnH,KAAK8mH,UAAW,EAMhB9mH,KAAKoqH,oBAAqB,EAO1BpqH,KAAKijH,gBAAmB+D,MAAM,EAAOqD,KAAK,EAAMzsD,IAAI,EAAMC,MAAM,EAAM13B,MAAM,EAAMD,OAAO,GAOzFlmC,KAAK+mH,UAAaC,MAAM,EAAMppD,IAAI,EAAOC,MAAM,EAAO13B,MAAM,EAAOD,OAAO,GAM1ElmC,KAAKsqH,aAAgBtD,MAAM,EAAMppD,IAAI,EAAOC,MAAM,EAAO13B,MAAM,EAAOD,OAAO,GAO7ElmC,KAAKkoH,SAAYtqD,IAAI,EAAOC,MAAM,EAAO13B,MAAM,EAAOD,OAAO,GAO7DlmC,KAAKsmH,YAAc,GAAIlkF,GAAOn+B,MAK9BjE,KAAK8lF,MAAQ,EAKb9lF,KAAKqjH,cAAe,EAMpBrjH,KAAK+lF,QAAS,EAMd/lF,KAAKuqH,IAAMz2F,EAAO1tB,MAAM7B,EAMxBvE,KAAKwqH,IAAM12F,EAAO1tB,MAAM5B,EAMxBxE,KAAKs4E,IAAM,EAMXt4E,KAAKu4E,IAAM,GAIfn2C,EAAO0d,QAAQi8B,OAAOqjC,KAAKv7G,WAQvB4mH,aAAc,WAEV,GAAIC,GAAMxoH,KAAKirB,IAAIntB,KAAK8zB,OAAO1tB,MAAM7B,GACjComH,EAAMzoH,KAAKirB,IAAIntB,KAAK8zB,OAAO1tB,MAAM5B,IAEjCkmH,IAAQ1qH,KAAKuqH,KAAOI,IAAQ3qH,KAAKwqH,OAEjCxqH,KAAKmH,MAAQnH,KAAK+pH,YAAcW,EAChC1qH,KAAKoH,OAASpH,KAAKgqH,aAAeW,EAClC3qH,KAAKsoC,UAAYpmC,KAAKmoC,MAAMrqC,KAAKmH,MAAQ,GACzCnH,KAAKwoC,WAAatmC,KAAKmoC,MAAMrqC,KAAKoH,OAAS,GAC3CpH,KAAKuqH,IAAMG,EACX1qH,KAAKwqH,IAAMG,EACX3qH,KAAKitC,OAAO5F,MAAMrnC,KAAK2H,SAASpD,EAAIvE,KAAKsoC,UAAWtoC,KAAK2H,SAASnD,EAAIxE,KAAKwoC,YAE3ExoC,KAAK+lF,QAAS,IAWtB3uC,UAAW,WAEFp3C,KAAKkvB,SAKVlvB,KAAK8lF,MAAQ,EAGb9lF,KAAKsqH,YAAYtD,KAAOhnH,KAAK+mH,SAASC,KACtChnH,KAAKsqH,YAAY1sD,GAAK59D,KAAK+mH,SAASnpD,GACpC59D,KAAKsqH,YAAYzsD,KAAO79D,KAAK+mH,SAASlpD,KACtC79D,KAAKsqH,YAAYnkF,KAAOnmC,KAAK+mH,SAAS5gF,KACtCnmC,KAAKsqH,YAAYpkF,MAAQlmC,KAAK+mH,SAAS7gF,MAEvClmC,KAAK+mH,SAASC,MAAO,EACrBhnH,KAAK+mH,SAASnpD,IAAK,EACnB59D,KAAK+mH,SAASlpD,MAAO,EACrB79D,KAAK+mH,SAAS5gF,MAAO,EACrBnmC,KAAK+mH,SAAS7gF,OAAQ,EAEtBlmC,KAAKkoH,QAAQtqD,IAAK,EAClB59D,KAAKkoH,QAAQrqD,MAAO,EACpB79D,KAAKkoH,QAAQ/hF,MAAO,EACpBnmC,KAAKkoH,QAAQhiF,OAAQ,EAErBlmC,KAAK8mH,UAAW,EAEhB9mH,KAAKyqH,eAELzqH,KAAK2H,SAASpD,EAAKvE,KAAK8zB,OAAOse,MAAM7tC,EAAKvE,KAAK8zB,OAAO7nB,OAAO1H,EAAIvE,KAAKmH,MAAUnH,KAAK0mB,OAAOniB,EAC5FvE,KAAK2H,SAASnD,EAAKxE,KAAK8zB,OAAOse,MAAM5tC,EAAKxE,KAAK8zB,OAAO7nB,OAAOzH,EAAIxE,KAAKoH,OAAWpH,KAAK0mB,OAAOliB,EAC7FxE,KAAK+H,SAAW/H,KAAK8zB,OAAOxtB,MAE5BtG,KAAK8pH,YAAc9pH,KAAK+H,UAEpB/H,KAAK+lF,QAAoC,IAA1B/lF,KAAK8zB,OAAO0sB,OAAO,MAElCxgD,KAAKm4C,KAAK5zC,EAAIvE,KAAK2H,SAASpD,EAC5BvE,KAAKm4C,KAAK3zC,EAAIxE,KAAK2H,SAASnD,GAG5BxE,KAAKwnH,QAELxnH,KAAKmyC,KAAKkC,QAAQmuE,OAAOyB,aAAajkH,MAEtCA,KAAKiqH,YAAY3gH,IAAItJ,KAAKwkH,SAASjgH,EAAIvE,KAAKmyC,KAAK+B,KAAKmyC,eAAgBrmF,KAAKwkH,SAAShgH,EAAIxE,KAAKmyC,KAAK+B,KAAKmyC,gBAEvGrmF,KAAK2H,SAASpD,GAAKvE,KAAKiqH,YAAY1lH,EACpCvE,KAAK2H,SAASnD,GAAKxE,KAAKiqH,YAAYzlH,GAEhCxE,KAAK2H,SAASpD,IAAMvE,KAAKm4C,KAAK5zC,GAAKvE,KAAK2H,SAASnD,IAAMxE,KAAKm4C,KAAK3zC,KAEjExE,KAAK+2D,MAAQ70D,KAAKgrB,KAAKltB,KAAKwkH,SAASjgH,EAAIvE,KAAKwkH,SAASjgH,EAAIvE,KAAKwkH,SAAShgH,EAAIxE,KAAKwkH,SAAShgH,GAC3FxE,KAAKsG,MAAQpE,KAAKsnC,MAAMxpC,KAAKwkH,SAAShgH,EAAGxE,KAAKwkH,SAASjgH,IAMvDvE,KAAKoqH,oBAELpqH,KAAK6jF,oBAIb7jF,KAAKs4E,IAAMt4E,KAAKqnE,SAChBrnE,KAAKu4E,IAAMv4E,KAAKomE,SAEhBpmE,KAAK+lF,QAAS,IAUlB3oC,WAAY,WAEHp9C,KAAKkvB,QAMS,IAAflvB,KAAK8lF,QAKT9lF,KAAK8lF,MAAQ,EAET9lF,KAAKqnE,SAAW,EAEhBrnE,KAAKmqH,OAAS/nF,EAAOO,KAEhB3iC,KAAKqnE,SAAW,IAErBrnE,KAAKmqH,OAAS/nF,EAAOQ,OAGrB5iC,KAAKomE,SAAW,EAEhBpmE,KAAKmqH,OAAS/nF,EAAOS,GAEhB7iC,KAAKomE,SAAW,IAErBpmE,KAAKmqH,OAAS/nF,EAAOU,MAGrB9iC,KAAKwnH,QAELxnH,KAAKs4E,IAAMt4E,KAAKqnE,SAChBrnE,KAAKu4E,IAAMv4E,KAAKomE,SAEQ,IAApBpmE,KAAKkqH,SAAS3lH,GAAwB,IAAbvE,KAAKs4E,MAE1Bt4E,KAAKs4E,IAAM,GAAKt4E,KAAKs4E,KAAOt4E,KAAKkqH,SAAS3lH,EAE1CvE,KAAKs4E,KAAOt4E,KAAKkqH,SAAS3lH,EAErBvE,KAAKs4E,IAAM,GAAKt4E,KAAKs4E,IAAMt4E,KAAKkqH,SAAS3lH,IAE9CvE,KAAKs4E,IAAMt4E,KAAKkqH,SAAS3lH,IAIT,IAApBvE,KAAKkqH,SAAS1lH,GAAwB,IAAbxE,KAAKu4E,MAE1Bv4E,KAAKu4E,IAAM,GAAKv4E,KAAKu4E,KAAOv4E,KAAKkqH,SAAS1lH,EAE1CxE,KAAKu4E,KAAOv4E,KAAKkqH,SAAS1lH,EAErBxE,KAAKu4E,IAAM,GAAKv4E,KAAKu4E,IAAMv4E,KAAKkqH,SAAS1lH,IAE9CxE,KAAKu4E,IAAMv4E,KAAKkqH,SAAS1lH,IAIjCxE,KAAK8zB,OAAOvvB,GAAKvE,KAAKs4E,IACtBt4E,KAAK8zB,OAAOtvB,GAAKxE,KAAKu4E,KAG1Bv4E,KAAKitC,OAAO5F,MAAMrnC,KAAK2H,SAASpD,EAAIvE,KAAKsoC,UAAWtoC,KAAK2H,SAASnD,EAAIxE,KAAKwoC,YAEvExoC,KAAK6pH,gBAEL7pH,KAAK8zB,OAAOxtB,OAAStG,KAAKunE,UAG9BvnE,KAAKm4C,KAAK5zC,EAAIvE,KAAK2H,SAASpD,EAC5BvE,KAAKm4C,KAAK3zC,EAAIxE,KAAK2H,SAASnD,IAShC0H,QAAS,WAELlM,KAAK8zB,OAAOwgC,KAAO,KACnBt0D,KAAK8zB,OAAS,MAUlB+vD,iBAAkB,WAEV7jF,KAAK2H,SAASpD,EAAIvE,KAAKmyC,KAAKkC,QAAQmuE,OAAO33G,OAAOtG,GAAKvE,KAAKmyC,KAAKkC,QAAQmuE,OAAOS,eAAe98E,MAE/FnmC,KAAK2H,SAASpD,EAAIvE,KAAKmyC,KAAKkC,QAAQmuE,OAAO33G,OAAOtG,EAClDvE,KAAKwkH,SAASjgH,IAAMvE,KAAKmnH,OAAO5iH,EAChCvE,KAAKkoH,QAAQ/hF,MAAO,GAEfnmC,KAAKkmC,MAAQlmC,KAAKmyC,KAAKkC,QAAQmuE,OAAO33G,OAAOq7B,OAASlmC,KAAKmyC,KAAKkC,QAAQmuE,OAAOS,eAAe/8E,QAEnGlmC,KAAK2H,SAASpD,EAAIvE,KAAKmyC,KAAKkC,QAAQmuE,OAAO33G,OAAOq7B,MAAQlmC,KAAKmH,MAC/DnH,KAAKwkH,SAASjgH,IAAMvE,KAAKmnH,OAAO5iH,EAChCvE,KAAKkoH,QAAQhiF,OAAQ,GAGrBlmC,KAAK2H,SAASnD,EAAIxE,KAAKmyC,KAAKkC,QAAQmuE,OAAO33G,OAAOrG,GAAKxE,KAAKmyC,KAAKkC,QAAQmuE,OAAOS,eAAerlD,IAE/F59D,KAAK2H,SAASnD,EAAIxE,KAAKmyC,KAAKkC,QAAQmuE,OAAO33G,OAAOrG,EAClDxE,KAAKwkH,SAAShgH,IAAMxE,KAAKmnH,OAAO3iH,EAChCxE,KAAKkoH,QAAQtqD,IAAK,GAEb59D,KAAKioC,OAASjoC,KAAKmyC,KAAKkC,QAAQmuE,OAAO33G,OAAOo9B,QAAUjoC,KAAKmyC,KAAKkC,QAAQmuE,OAAOS,eAAeplD,OAErG79D,KAAK2H,SAASnD,EAAIxE,KAAKmyC,KAAKkC,QAAQmuE,OAAO33G,OAAOo9B,OAASjoC,KAAKoH,OAChEpH,KAAKwkH,SAAShgH,IAAMxE,KAAKmnH,OAAO3iH,EAChCxE,KAAKkoH,QAAQrqD,MAAO,IAgB5BpqB,QAAS,SAAUtsC,EAAOC,EAAQwtB,EAASC,GAEhB,mBAAZD,KAA2BA,EAAU50B,KAAK0mB,OAAOniB,GACrC,mBAAZswB,KAA2BA,EAAU70B,KAAK0mB,OAAOliB,GAE5DxE,KAAK+pH,YAAc5iH,EACnBnH,KAAKgqH,aAAe5iH,EACpBpH,KAAKmH,MAAQnH,KAAK+pH,YAAc/pH,KAAKuqH,IACrCvqH,KAAKoH,OAASpH,KAAKgqH,aAAehqH,KAAKwqH,IACvCxqH,KAAKsoC,UAAYpmC,KAAKmoC,MAAMrqC,KAAKmH,MAAQ,GACzCnH,KAAKwoC,WAAatmC,KAAKmoC,MAAMrqC,KAAKoH,OAAS,GAC3CpH,KAAK0mB,OAAO2gB,MAAMzS,EAASC,GAE3B70B,KAAKitC,OAAO5F,MAAMrnC,KAAK2H,SAASpD,EAAIvE,KAAKsoC,UAAWtoC,KAAK2H,SAASnD,EAAIxE,KAAKwoC,aAW/EngB,MAAO,SAAU9jB,EAAGC,GAEhBxE,KAAKwkH,SAASl7G,IAAI,GAClBtJ,KAAKykH,aAAan7G,IAAI,GAEtBtJ,KAAKokH,gBAAkB,EACvBpkH,KAAKqkH,oBAAsB,EAE3BrkH,KAAK2H,SAASpD,EAAKA,EAAKvE,KAAK8zB,OAAO7nB,OAAO1H,EAAIvE,KAAKmH,MAAUnH,KAAK0mB,OAAOniB,EAC1EvE,KAAK2H,SAASnD,EAAKA,EAAKxE,KAAK8zB,OAAO7nB,OAAOzH,EAAIxE,KAAKoH,OAAWpH,KAAK0mB,OAAOliB,EAE3ExE,KAAKm4C,KAAK5zC,EAAIvE,KAAK2H,SAASpD,EAC5BvE,KAAKm4C,KAAK3zC,EAAIxE,KAAK2H,SAASnD,EAE5BxE,KAAK+H,SAAW/H,KAAK8zB,OAAOxtB,MAC5BtG,KAAK8pH,YAAc9pH,KAAK+H,SAExB/H,KAAKuqH,IAAMvqH,KAAK8zB,OAAO1tB,MAAM7B,EAC7BvE,KAAKwqH,IAAMxqH,KAAK8zB,OAAO1tB,MAAM5B,EAE7BxE,KAAKitC,OAAO5F,MAAMrnC,KAAK2H,SAASpD,EAAIvE,KAAKsoC,UAAWtoC,KAAK2H,SAASnD,EAAIxE,KAAKwoC,aAY/E2yB,QAAS,SAAU52D,EAAGC,GAElB,MAAO49B,GAAOl7B,UAAUvC,SAAS3E,KAAMuE,EAAGC,IAU9ComH,QAAS,WACL,MAAO5qH,MAAKkoH,QAAQrqD,MASxBgtD,OAAQ,WACJ,MAAQ7qH,MAAKkoH,QAAQ/hF,MAAQnmC,KAAKkoH,QAAQhiF,OAS9C2gF,UAAW,WACP,MAAQ7mH,MAAKqnE,SAAW,EAAIrnE,KAAKqnE,UAAYrnE,KAAKqnE,UAStDggD,UAAW,WACP,MAAQrnH,MAAKomE,SAAW,EAAIpmE,KAAKomE,UAAYpmE,KAAKomE,UAStDiB,OAAQ,WACJ,MAAOrnE,MAAK2H,SAASpD,EAAIvE,KAAKm4C,KAAK5zC,GASvC6hE,OAAQ,WACJ,MAAOpmE,MAAK2H,SAASnD,EAAIxE,KAAKm4C,KAAK3zC,GASvC+iE,OAAQ,WACJ,MAAOvnE,MAAK+H,SAAW/H,KAAK8pH,cAUpC3gH,OAAOC,eAAeg5B,EAAO0d,QAAQi8B,OAAOqjC,KAAKv7G,UAAW,UAExDwF,IAAK,WACD,MAAOrJ,MAAK2H,SAASnD,EAAIxE,KAAKoH,UAUtC+B,OAAOC,eAAeg5B,EAAO0d,QAAQi8B,OAAOqjC,KAAKv7G,UAAW,SAExDwF,IAAK,WACD,MAAOrJ,MAAK2H,SAASpD,EAAIvE,KAAKmH,SAStCgC,OAAOC,eAAeg5B,EAAO0d,QAAQi8B,OAAOqjC,KAAKv7G,UAAW,KAExDwF,IAAK,WACD,MAAOrJ,MAAK2H,SAASpD,GAGzB+E,IAAK,SAAUC,GAEXvJ,KAAK2H,SAASpD,EAAIgF,KAS1BJ,OAAOC,eAAeg5B,EAAO0d,QAAQi8B,OAAOqjC,KAAKv7G,UAAW,KAExDwF,IAAK,WACD,MAAOrJ,MAAK2H,SAASnD,GAGzB8E,IAAK,SAAUC,GAEXvJ,KAAK2H,SAASnD,EAAI+E,KAe1B64B,EAAO0d,QAAQi8B,OAAOqjC,KAAKn0G,OAAS,SAAU6F,EAASwjD,EAAMluC,EAAOq4F,GAE1C,mBAAXA,KAA0BA,GAAS,GAE9Cr4F,EAAQA,GAAS,oBAEbq4F,GAEA3tG,EAAQ6E,UAAYyQ,EACpBtV,EAAQ2F,SAAS69C,EAAK3sD,SAASpD,EAAI+vD,EAAKniB,KAAKyB,OAAOrvC,EAAG+vD,EAAK3sD,SAASnD,EAAI8vD,EAAKniB,KAAKyB,OAAOpvC,EAAG8vD,EAAKntD,MAAOmtD,EAAKltD,UAI9G0J,EAAQyE,YAAc6Q,EACtBtV,EAAQypB,WAAW+5B,EAAK3sD,SAASpD,EAAI+vD,EAAKniB,KAAKyB,OAAOrvC,EAAG+vD,EAAK3sD,SAASnD,EAAI8vD,EAAKniB,KAAKyB,OAAOpvC,EAAG8vD,EAAKntD,MAAOmtD,EAAKltD,UAcxHg7B,EAAO0d,QAAQi8B,OAAOqjC,KAAKO,eAAiB,SAAUjoE,EAAO4c,GAEzD5c,EAAM5gC,KAAK,MAAQw9C,EAAK/vD,EAAE+3C,QAAQ,GAAI,MAAQgY,EAAK9vD,EAAE83C,QAAQ,GAAI,UAAYgY,EAAKntD,MAAO,WAAamtD,EAAKltD,QAC3GswC,EAAM5gC,KAAK,eAAiBw9C,EAAKkwD,SAASjgH,EAAE+3C,QAAQ,GAAI,MAAQgY,EAAKkwD,SAAShgH,EAAE83C,QAAQ,GAAI,WAAagY,EAAKgkB,IAAIh8B,QAAQ,GAAI,WAAagY,EAAKikB,IAAIj8B,QAAQ,IAC5J5E,EAAM5gC,KAAK,mBAAqBw9C,EAAKmwD,aAAalgH,EAAE+3C,QAAQ,GAAI,MAAQgY,EAAKmwD,aAAajgH,EAAE83C,QAAQ,GAAI,UAAYgY,EAAKyC,MAAMza,QAAQ,GAAI,UAAYgY,EAAKhuD,MAAMg2C,QAAQ,IAC1K5E,EAAM5gC,KAAK,cAAgBw9C,EAAK0uD,QAAQz+G,EAAG,MAAQ+vD,EAAK0uD,QAAQx+G,EAAG,aAAe8vD,EAAK6yD,OAAO5iH,EAAE+3C,QAAQ,GAAI,MAAQgY,EAAK6yD,OAAO3iH,EAAE83C,QAAQ,IAC1I5E,EAAM5gC,KAAK,kBAAoBw9C,EAAKyyD,SAAS5gF,KAAM,UAAYmuB,EAAKyyD,SAAS7gF,MAAO,OAASouB,EAAKyyD,SAASnpD,GAAI,SAAWtJ,EAAKyyD,SAASlpD,MACxInmB,EAAM5gC,KAAK,iBAAmBw9C,EAAK4zD,QAAQ/hF,KAAM,UAAYmuB,EAAK4zD,QAAQhiF,MAAO,OAASouB,EAAK4zD,QAAQtqD,GAAI,SAAWtJ,EAAK4zD,QAAQrqD,OAIvIz7B,EAAO0d,QAAQi8B,OAAOqjC,KAAKv7G,UAAUsB,YAAci9B,EAAO0d,QAAQi8B,OAAOqjC,KAezEh9E,EAAO8yB,UAAY,SAAU/iB,GAKzBnyC,KAAKmyC,KAAOA,EAKZnyC,KAAK8qH,YAML9qH,KAAK+qH,GAAK,GAId3oF,EAAO8yB,UAAUrxD,WAQbmlC,IAAK,SAAU6yC,GAIX,MAFA77E,MAAK8qH,SAASjvC,EAAQx+D,MAAQw+D,EAEvBA,GASXhlC,OAAQ,SAAUglC,SAEP77E,MAAK8qH,SAASjvC,EAAQx+D,OASjC7D,OAAQ,WAEJ,IAAK,GAAImJ,KAAO3iB,MAAK8qH,SAEb9qH,KAAK8qH,SAASnoG,GAAK61B,QAEnBx4C,KAAK8qH,SAASnoG,GAAKnJ,WAQnC4oB,EAAO8yB,UAAUrxD,UAAUsB,YAAci9B,EAAO8yB,UAahD9yB,EAAO8yB,UAAU6mB,UAoBjB35C,EAAO8yB,UAAU6mB,OAAOC,QAAU,SAAU7pC,EAAM5tC,EAAGC,EAAGs3E,GAMpD97E,KAAK87E,aAAeA,GAAgB,GAEpC15C,EAAOsd,MAAM37C,KAAK/D,KAAMmyC,GAKxBnyC,KAAKqd,KAAO,UAAYrd,KAAKmyC,KAAKiC,UAAU22E,KAM5C/qH,KAAKiD,KAAOm/B,EAAOsB,QAMnB1jC,KAAKmuC,KAAO,GAAI/L,GAAOl7B,UAAU3C,EAAGC,EAAG,EAAG,GAM1CxE,KAAKgrH,iBAAmB,GAAI5oF,GAAOn+B,MAAM,KAAM,MAM/CjE,KAAKirH,iBAAmB,GAAI7oF,GAAOn+B,MAAM,IAAK,KAM9CjE,KAAKkrH,iBAAmB,EAMxBlrH,KAAKmrH,iBAAmB,EAKxBnrH,KAAKqvF,UAAY,KAMjBrvF,KAAKorH,YAAc,KAMnBprH,KAAKqrH,YAAc,IAMnBrrH,KAAKsrH,iBAAmB,EAMxBtrH,KAAKurH,iBAAmB,EAKxBvrH,KAAKwvF,UAAY,KAMjBxvF,KAAKgjH,QAAU,IAMfhjH,KAAKwrH,cAAgBppF,EAAO+sD,SAK5BnvF,KAAKyrH,aAAe,GAAIrpF,GAAOn+B,MAM/BjE,KAAKskH,YAAc,EAMnBtkH,KAAK88F,UAAY,IAMjB98F,KAAK4jF,SAAW,IAKhB5jF,KAAKmnH,OAAS,GAAI/kF,GAAOn+B,MAMzBjE,KAAK6P,IAAK,EAMV7P,KAAK0rH,eAAiB,GAAItpF,GAAOn+B,MAAM,GAAK,IAM5CjE,KAAKwP,UAAY4yB,EAAO/hC,WAAWC,OAQnCN,KAAK2rH,MAAQpnH,EAQbvE,KAAK4rH,MAAQpnH,EAKbxE,KAAKovF,WAAY,EAKjBpvF,KAAKuvF,WAAY,EAMjBvvF,KAAK6rH,oBAAqB,EAM1B7rH,KAAK8rH,oBAAqB,EAM1B9rH,KAAK+rH,kBAAoB,GAAI3pF,GAAOn+B,MAAM,EAAG,GAM7CjE,KAAKgsH,kBAAoB,GAAI5pF,GAAOn+B,MAAM,EAAG,GAM7CjE,KAAKisH,UAAY,EAMjBjsH,KAAKksH,OAAS,EAMdlsH,KAAKmsH,SAAW,EAMhBnsH,KAAKosH,UAAW,EAMhBpsH,KAAK+oG,QAAU,MAInB3mE,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAYsF,OAAOkD,OAAO+1B,EAAOsd,MAAM77C,WACvEu+B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUsB,YAAci9B,EAAO8yB,UAAU6mB,OAAOC,QAMhF55C,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAU2V,OAAS,WAE3CxZ,KAAK6P,IAAM7P,KAAKmyC,KAAK+B,KAAKA,MAAQl0C,KAAKksH,SAEvClsH,KAAKqsH,eAELrsH,KAAKmsH,WAEDnsH,KAAKisH,UAAY,GAEbjsH,KAAKmsH,UAAYnsH,KAAKisH,YAEtBjsH,KAAK6P,IAAK,GAIlB7P,KAAKksH,OAASlsH,KAAKmyC,KAAK+B,KAAKA,KAAOl0C,KAAK88F,UAAY98F,KAAKmyC,KAAK+B,KAAKwhB,WAKxE,KAFA,GAAIvxD,GAAInE,KAAKoM,SAAS/H,OAEfF,KAECnE,KAAKoM,SAASjI,GAAGq0C,QAEjBx4C,KAAKoM,SAASjI,GAAGqV,UAkB7B4oB,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUyoH,cAAgB,SAAUC,EAAMx9B,EAAQztC,EAAU8jE,EAASgF,GAE3E,mBAAXr7B,KAA0BA,EAAS,GACtB,mBAAbztC,KAA4BA,EAAWthD,KAAK87E,cAChC,mBAAZspC,KAA2BA,GAAU,GACd,mBAAvBgF,KAAsCA,GAAqB,EAEtE,IAAIoC,GACAroH,EAAI,EACJsoH,EAASF,EACTG,EAAW39B,CAGf,KAFA/uF,KAAK+oG,QAAUha,EAEJztC,EAAJn9C,GAECrC,MAAM6kC,QAAQ4lF,KAEdE,EAASzsH,KAAKmyC,KAAKmC,IAAImqD,KAAK8tB,IAG5BzqH,MAAM6kC,QAAQooD,KAEd29B,EAAW1sH,KAAKmyC,KAAKmC,IAAImqD,KAAK1P,IAGlCy9B,EAAW,GAAIxsH,MAAKwrH,cAAcxrH,KAAKmyC,KAAM,EAAG,EAAGs6E,EAAQC,GAE3D1sH,KAAKmyC,KAAKkC,QAAQmuE,OAAOtzF,OAAOs9F,GAAU,GAEtCpH,GAEAoH,EAASl4D,KAAK2uD,eAAeoH,KAAM,EACnCmC,EAASl4D,KAAK2uD,eAAe+D,MAAO,GAIpCwF,EAASl4D,KAAK2uD,eAAe+D,MAAO,EAGxCwF,EAASl4D,KAAK81D,mBAAqBA,EACnCoC,EAASl4D,KAAK+uD,cAAe,EAE7BmJ,EAASh0E,QAAS,EAClBg0E,EAASvkH,SAAU,EACnBukH,EAASvgH,OAAOq7B,SAAStnC,KAAK0rH,gBAE9B1rH,KAAKgpC,IAAIwjF,GAETroH,GAGJ,OAAOnE,OASXoiC,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUugF,KAAO,WAE7CpkF,KAAK6P,IAAK,EACV7P,KAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,GASlBpW,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUqhF,OAAS,WAE/CllF,KAAKggD,OAAQ,EACbhgD,KAAKw4C,QAAS,GAWlBpW,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAU8oH,QAAU,SAAU/oC,EAAUtiC,GAEpEthD,KAAKoP,OAAM,EAAMw0E,EAAU,EAAGtiC,GAAU,IAY5Clf,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAU+oH,KAAO,SAAUhpC,EAAUkZ,EAAWx7C,GAE5EthD,KAAKoP,OAAM,EAAOw0E,EAAUkZ,EAAWx7C,GAAU,IAcrDlf,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUuL,MAAQ,SAAUu9G,EAAS/oC,EAAUkZ,EAAWx7C,EAAUurE,GAehG,GAbuB,mBAAZF,KAA2BA,GAAU,GACxB,mBAAb/oC,KAA4BA,EAAW,IACzB,mBAAdkZ,IAA2C,OAAdA,KAAsBA,EAAY,KAClD,mBAAbx7C,KAA4BA,EAAW,GACrB,mBAAlBurE,KAAiCA,GAAgB,GAE5D7sH,KAAKklF,SAELllF,KAAKiI,SAAU,EAEfjI,KAAK4jF,SAAWA,EAChB5jF,KAAK88F,UAAYA,EAEb6vB,GAAWE,EAEX,IAAK,GAAI1oH,GAAI,EAAOm9C,EAAJn9C,EAAcA,IAE1BnE,KAAKqsH,mBAKTrsH,MAAK6P,IAAK,EACV7P,KAAKisH,WAAa3qE,EAClBthD,KAAKmsH,SAAW,EAChBnsH,KAAKksH,OAASlsH,KAAKmyC,KAAK+B,KAAKA,KAAO4oD,EAAY98F,KAAKmyC,KAAK+B,KAAKwhB,YAUvEtzB,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUwoH,aAAe,WAErD,GAAIG,GAAWxsH,KAAKokD,gBAAe,EAElB,QAAbooE,IAKAxsH,KAAKmH,MAAQ,GAAKnH,KAAKoH,OAAS,EAEhColH,EAASnkG,MAAMroB,KAAKmyC,KAAKmC,IAAIkR,eAAexlD,KAAKmmC,KAAMnmC,KAAKkmC,OAAQlmC,KAAKmyC,KAAKmC,IAAIkR,eAAexlD,KAAKgoC,IAAKhoC,KAAKioC,SAIhHukF,EAASnkG,MAAMroB,KAAK2rH,MAAO3rH,KAAK4rH,OAGpCY,EAASlmH,MAAQ,EACjBkmH,EAAS5oC,SAAW5jF,KAAK4jF,SAErB5jF,KAAK6rH,mBAEL7rH,KAAK2hD,WAAW6qE,GAEXxsH,KAAK8rH,oBAEV9rH,KAAK4hD,WAAW4qE,GAGhBxsH,KAAKovF,UAELo9B,EAAS58B,aAAa5vF,KAAKqvF,WAEI,IAA1BrvF,KAAKkrH,kBAAoD,IAA1BlrH,KAAKmrH,iBAEzCqB,EAASpmH,MAAMkD,IAAItJ,KAAKmyC,KAAKmC,IAAIgqD,YAAYt+F,KAAKkrH,iBAAkBlrH,KAAKmrH,oBAEnEnrH,KAAK+rH,kBAAkBxnH,IAAMvE,KAAKgsH,kBAAkBznH,GAAOvE,KAAK+rH,kBAAkBvnH,IAAMxE,KAAKgsH,kBAAkBxnH,IAErHgoH,EAASpmH,MAAMkD,IAAItJ,KAAKmyC,KAAKmC,IAAIgqD,YAAYt+F,KAAK+rH,kBAAkBxnH,EAAGvE,KAAKgsH,kBAAkBznH,GAAIvE,KAAKmyC,KAAKmC,IAAIgqD,YAAYt+F,KAAK+rH,kBAAkBvnH,EAAGxE,KAAKgsH,kBAAkBxnH,IAK7KgoH,EAASz8G,MAFTjO,MAAM6kC,QAAyB,WAAjB3mC,KAAK+oG,SAEF/oG,KAAKmyC,KAAKmC,IAAImqD,KAAKz+F,KAAK+oG,SAIxB/oG,KAAK+oG,QAGtB/oG,KAAKuvF,UAELi9B,EAAS78B,aAAa3vF,KAAKwvF,WAI3Bg9B,EAASxkH,MAAQhI,KAAKmyC,KAAKmC,IAAIgqD,YAAYt+F,KAAKsrH,iBAAkBtrH,KAAKurH,kBAG3EiB,EAASh9G,UAAYxP,KAAKwP,UAE1Bg9G,EAASl4D,KAAKm2D,eAEd+B,EAASl4D,KAAK6yD,OAAO9/E,MAAMrnC,KAAKmnH,OAAO5iH,EAAGvE,KAAKmnH,OAAO3iH,GAEtDgoH,EAASl4D,KAAKkwD,SAASjgH,EAAIvE,KAAKmyC,KAAKmC,IAAIkR,eAAexlD,KAAKgrH,iBAAiBzmH,EAAGvE,KAAKirH,iBAAiB1mH,GACvGioH,EAASl4D,KAAKkwD,SAAShgH,EAAIxE,KAAKmyC,KAAKmC,IAAIkR,eAAexlD,KAAKgrH,iBAAiBxmH,EAAGxE,KAAKirH,iBAAiBzmH,GACvGgoH,EAASl4D,KAAK8vD,gBAAkBpkH,KAAKmyC,KAAKmC,IAAIkR,eAAexlD,KAAKorH,YAAaprH,KAAKqrH,aAEpFmB,EAASl4D,KAAK0uD,QAAQx+G,EAAIxE,KAAKgjH,QAE/BwJ,EAASl4D,KAAKowD,KAAKngH,EAAIvE,KAAKyrH,aAAalnH,EACzCioH,EAASl4D,KAAKowD,KAAKlgH,EAAIxE,KAAKyrH,aAAajnH,EAEzCgoH,EAASl4D,KAAKgwD,YAActkH,KAAKskH,YAEjCkI,EAAS98B,WAWbttD,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAU4vC,QAAU,SAAUtsC,EAAOC,GAEjEpH,KAAKmuC,KAAKhnC,MAAQA,EAClBnH,KAAKmuC,KAAK/mC,OAASA,GAUvBg7B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUipH,UAAY,SAAUjzF,EAAK3kB,GAEjE2kB,EAAMA,GAAO,EACb3kB,EAAMA,GAAO,EAEblV,KAAKgrH,iBAAiBzmH,EAAIs1B,EAC1B75B,KAAKirH,iBAAiB1mH,EAAI2Q,GAU9BktB,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUkpH,UAAY,SAAUlzF,EAAK3kB,GAEjE2kB,EAAMA,GAAO,EACb3kB,EAAMA,GAAO,EAEblV,KAAKgrH,iBAAiBxmH,EAAIq1B,EAC1B75B,KAAKirH,iBAAiBzmH,EAAI0Q,GAW9BktB,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUmpH,YAAc,SAAUnzF,EAAK3kB,GAEnE2kB,EAAMA,GAAO,EACb3kB,EAAMA,GAAO,EAEblV,KAAKorH,YAAcvxF,EACnB75B,KAAKqrH,YAAcn2G,GAgBvBktB,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUopH,SAAW,SAAUpzF,EAAK3kB,EAAKg4G,EAAMnqB,EAAMC,GAYjF,GAVmB,mBAARnpE,KAAuBA,EAAM,GACrB,mBAAR3kB,KAAuBA,EAAM,GACpB,mBAATg4G,KAAwBA,EAAO,GACtB,mBAATnqB,KAAwBA,EAAO3gE,EAAOggE,OAAO2B,OAAOC,MAC3C,mBAAThB,KAAwBA,GAAO,GAE1ChjG,KAAKsrH,iBAAmBzxF,EACxB75B,KAAKurH,iBAAmBr2G,EACxBlV,KAAKuvF,WAAY,EAEb29B,EAAO,GAAKrzF,IAAQ3kB,EACxB,CACI,GAAIi4G,IAAcrtG,EAAG+Z,GACjBmhD,EAAQh7E,KAAKmyC,KAAKwB,KAAKqnC,MAAMmyC,GAAWvmF,IAAM9mB,EAAG5K,GAAOg4G,EAAMnqB,EAClE/nB,GAAMgoB,KAAKA,GAEXhjG,KAAKwvF,UAAYxU,EAAMooB,aAAa,IAGpCpjG,KAAKwvF,UAAUt+D,UACflxB,KAAKuvF,WAAY,IAmBzBntD,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUupH,SAAW,SAAU/+G,EAAMG,EAAMD,EAAME,EAAMy+G,EAAMnqB,EAAMC,GAmB/F,GAjBoB,mBAAT30F,KAAwBA,EAAO,GACtB,mBAATG,KAAwBA,EAAO,GACtB,mBAATD,KAAwBA,EAAO,GACtB,mBAATE,KAAwBA,EAAO,GACtB,mBAATy+G,KAAwBA,EAAO,GACtB,mBAATnqB,KAAwBA,EAAO3gE,EAAOggE,OAAO2B,OAAOC,MAC3C,mBAAThB,KAAwBA,GAAO,GAG1ChjG,KAAKkrH,iBAAmB,EACxBlrH,KAAKmrH,iBAAmB,EAExBnrH,KAAK+rH,kBAAkBziH,IAAI+E,EAAME,GACjCvO,KAAKgsH,kBAAkB1iH,IAAIkF,EAAMC,GAEjCzO,KAAKovF,WAAY,EAEb89B,EAAO,GAAM7+G,IAASG,GAAUD,IAASE,EAC7C,CACI,GAAI0+G,IAAc5oH,EAAG8J,EAAM7J,EAAG+J,GAC1BysE,EAAQh7E,KAAKmyC,KAAKwB,KAAKqnC,MAAMmyC,GAAWvmF,IAAMriC,EAAGiK,EAAMhK,EAAGiK,GAAQy+G,EAAMnqB,EAC5E/nB,GAAMgoB,KAAKA,GAEXhjG,KAAKqvF,UAAYrU,EAAMooB,aAAa,IAGpCpjG,KAAKqvF,UAAUn+D,UACflxB,KAAKovF,WAAY,IAYzBhtD,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAUwpH,GAAK,SAAUl7D,GAEjDA,EAAOllB,QAEPjtC,KAAK2rH,MAAQx5D,EAAOllB,OAAO1oC,EAC3BvE,KAAK4rH,MAAQz5D,EAAOllB,OAAOzoC,IAI3BxE,KAAK2rH,MAAQx5D,EAAO/f,MAAM7tC,EAAK4tD,EAAOlmD,OAAO1H,EAAI4tD,EAAOhrD,MACxDnH,KAAK4rH,MAAQz5D,EAAO/f,MAAM5tC,EAAK2tD,EAAOlmD,OAAOzH,EAAI2tD,EAAO/qD,SAShE+B,OAAOC,eAAeg5B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAW,SAE7DwF,IAAK,WACD,MAAOrJ,MAAKmuC,KAAKhnC;EAGrBmC,IAAK,SAAUC,GACXvJ,KAAKmuC,KAAKhnC,MAAQoC,KAS1BJ,OAAOC,eAAeg5B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAW,UAE7DwF,IAAK,WACD,MAAOrJ,MAAKmuC,KAAK/mC,QAGrBkC,IAAK,SAAUC,GACXvJ,KAAKmuC,KAAK/mC,OAASmC,KAS3BJ,OAAOC,eAAeg5B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAW,KAE7DwF,IAAK,WACD,MAAOrJ,MAAK2rH,OAGhBriH,IAAK,SAAUC,GACXvJ,KAAK2rH,MAAQpiH,KASrBJ,OAAOC,eAAeg5B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAW,KAE7DwF,IAAK,WACD,MAAOrJ,MAAK4rH,OAGhBtiH,IAAK,SAAUC,GACXvJ,KAAK4rH,MAAQriH,KAUrBJ,OAAOC,eAAeg5B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAW,QAE7DwF,IAAK,WACD,MAAOnH,MAAKmoC,MAAMrqC,KAAKuE,EAAKvE,KAAKmuC,KAAKhnC,MAAQ,MAUtDgC,OAAOC,eAAeg5B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAW,SAE7DwF,IAAK,WACD,MAAOnH,MAAKmoC,MAAMrqC,KAAKuE,EAAKvE,KAAKmuC,KAAKhnC,MAAQ,MAUtDgC,OAAOC,eAAeg5B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAW,OAE7DwF,IAAK,WACD,MAAOnH,MAAKmoC,MAAMrqC,KAAKwE,EAAKxE,KAAKmuC,KAAK/mC,OAAS,MAUvD+B,OAAOC,eAAeg5B,EAAO8yB,UAAU6mB,OAAOC,QAAQn4E,UAAW,UAE7DwF,IAAK,WACD,MAAOnH,MAAKmoC,MAAMrqC,KAAKwE,EAAKxE,KAAKmuC,KAAK/mC,OAAS,MAuBvDg7B,EAAOkrF,KAAO,SAAUpmE,EAAOv6C,EAAOpI,EAAGC,EAAG2C,EAAOC,GAK/CpH,KAAKknD,MAAQA,EAKblnD,KAAK2M,MAAQA,EAKb3M,KAAKuE,EAAIA,EAKTvE,KAAKwE,EAAIA,EAKTxE,KAAKo+G,OAAS75G,EAAI4C,EAKlBnH,KAAKq+G,OAAS75G,EAAI4C,EAKlBpH,KAAKmH,MAAQA,EAKbnH,KAAKoH,OAASA,EAKdpH,KAAKk8B,QAAUh6B,KAAKirB,IAAIhmB,EAAQ,GAKhCnH,KAAKm8B,QAAUj6B,KAAKirB,IAAI/lB,EAAS,GAKjCpH,KAAKgI,MAAQ,EAKbhI,KAAKmW,cAKLnW,KAAKutH,SAAU,EAKfvtH,KAAK8nH,SAAU,EAKf9nH,KAAK+nH,YAAa,EAKlB/nH,KAAK4nH,UAAW,EAKhB5nH,KAAK6nH,WAAY,EAMjB7nH,KAAKooH,aAAc,EAMnBpoH,KAAKmoH,cAAe,EAMpBnoH,KAAKuoH,WAAY,EAMjBvoH,KAAKsoH,aAAc,EAMnBtoH,KAAK0nH,kBAAoB,KAMzB1nH,KAAK2nH,yBAA2B3nH,MAIpCoiC,EAAOkrF,KAAKzpH,WAURmoC,cAAe,SAAUznC,EAAGC,GAExB,QAASD,EAAIvE,KAAKo+G,QAAU55G,EAAIxE,KAAKq+G,QAAU95G,EAAIvE,KAAKkmC,OAAS1hC,EAAIxE,KAAKioC,SAa9EE,WAAY,SAAU5jC,EAAGC,EAAG0hC,EAAO+B,GAE/B,MAAI/B,IAASlmC,KAAKo+G,QAEP,EAGPn2E,GAAUjoC,KAAKq+G,QAER,EAGP95G,GAAKvE,KAAKo+G,OAASp+G,KAAKmH,OAEjB,EAGP3C,GAAKxE,KAAKq+G,OAASr+G,KAAKoH,QAEjB,GAGJ,GAYXomH,qBAAsB,SAAUnzG,EAAUvJ,GAEtC9Q,KAAK0nH,kBAAoBrtG,EACzBra,KAAK2nH,yBAA2B72G,GASpC5E,QAAS,WAELlM,KAAK0nH,kBAAoB,KACzB1nH,KAAK2nH,yBAA2B,KAChC3nH,KAAKmW,WAAa,MAatBs3G,aAAc,SAAUtnF,EAAMD,EAAO03B,EAAIC,GAErC79D,KAAKooH,YAAcjiF,EACnBnmC,KAAKmoH,aAAejiF,EACpBlmC,KAAKuoH,UAAY3qD,EACjB59D,KAAKsoH,YAAczqD,EAEnB79D,KAAK4nH,SAAWzhF,EAChBnmC,KAAK6nH,UAAY3hF,EACjBlmC,KAAK8nH,QAAUlqD,EACf59D,KAAK+nH,WAAalqD,GAStB6vD,eAAgB,WAEZ1tH,KAAKooH,aAAc,EACnBpoH,KAAKmoH,cAAe,EACpBnoH,KAAKuoH,WAAY,EACjBvoH,KAAKsoH,aAAc,EAEnBtoH,KAAK8nH,SAAU,EACf9nH,KAAK+nH,YAAa,EAClB/nH,KAAK4nH,UAAW,EAChB5nH,KAAK6nH,WAAY,GAYrB8F,cAAe,SAAUC,EAAUC,GAE/B,MAAID,IAAYC,EAGJ7tH,KAAKooH,aAAepoH,KAAKmoH,cAAgBnoH,KAAKuoH,WAAavoH,KAAKsoH,aAAetoH,KAAK8nH,SAAW9nH,KAAK+nH,YAAc/nH,KAAK4nH,UAAY5nH,KAAK6nH,WAAa7nH,KAAK0nH,kBAE7JkG,EAGG5tH,KAAKooH,aAAepoH,KAAKmoH,cAAgBnoH,KAAKuoH,WAAavoH,KAAKsoH,YAEnEuF,EAGG7tH,KAAK8nH,SAAW9nH,KAAK+nH,YAAc/nH,KAAK4nH,UAAY5nH,KAAK6nH,WAG9D,GAUXrhF,KAAM,SAAUihF,GAEZznH,KAAK2M,MAAQ86G,EAAK96G,MAClB3M,KAAKgI,MAAQy/G,EAAKz/G,MAClBhI,KAAKmW,WAAasxG,EAAKtxG,WAEvBnW,KAAKuoH,UAAYd,EAAKc,UACtBvoH,KAAKsoH,YAAcb,EAAKa,YACxBtoH,KAAKooH,YAAcX,EAAKW,YACxBpoH,KAAKmoH,aAAeV,EAAKU,aAEzBnoH,KAAK0nH,kBAAoBD,EAAKC,kBAC9B1nH,KAAK2nH,yBAA2BF,EAAKE,2BAM7CvlF,EAAOkrF,KAAKzpH,UAAUsB,YAAci9B,EAAOkrF,KAO3CnkH,OAAOC,eAAeg5B,EAAOkrF,KAAKzpH,UAAW,YAEzCwF,IAAK,WACD,MAAQrJ,MAAKooH,aAAepoH,KAAKmoH,cAAgBnoH,KAAKuoH,WAAavoH,KAAKsoH,eAUhFn/G,OAAOC,eAAeg5B,EAAOkrF,KAAKzpH,UAAW,cAEzCwF,IAAK,WACD,MAAQrJ,MAAKooH,aAAepoH,KAAKmoH,cAAgBnoH,KAAKuoH,WAAavoH,KAAKsoH,aAAetoH,KAAK0nH,qBAUpGv+G,OAAOC,eAAeg5B,EAAOkrF,KAAKzpH,UAAW,QAEzCwF,IAAK,WACD,MAAOrJ,MAAKo+G,UAUpBj1G,OAAOC,eAAeg5B,EAAOkrF,KAAKzpH,UAAW,SAEzCwF,IAAK,WACD,MAAOrJ,MAAKo+G,OAASp+G,KAAKmH,SAUlCgC,OAAOC,eAAeg5B,EAAOkrF,KAAKzpH,UAAW,OAEzCwF,IAAK,WACD,MAAOrJ,MAAKq+G,UAUpBl1G,OAAOC,eAAeg5B,EAAOkrF,KAAKzpH,UAAW,UAEzCwF,IAAK,WACD,MAAOrJ,MAAKq+G,OAASr+G,KAAKoH,UA6BlCg7B,EAAOw6C,QAAU,SAAUzqC,EAAMxvB,EAAK+5D,EAAWC,EAAYx1E,EAAOC,GAKhEpH,KAAKmyC,KAAOA,EAKZnyC,KAAK2iB,IAAMA,CAEX,IAAI/L,GAAOwrB,EAAO0rF,cAAc9iF,MAAMhrC,KAAKmyC,KAAMxvB,EAAK+5D,EAAWC,EAAYx1E,EAAOC,EAEvE,QAATwP,IAQJ5W,KAAKmH,MAAQyP,EAAKzP,MAKlBnH,KAAKoH,OAASwP,EAAKxP,OAKnBpH,KAAK08E,UAAY9lE,EAAK8lE,UAKtB18E,KAAK28E,WAAa/lE,EAAK+lE,WAKvB38E,KAAKyuD,YAAc73C,EAAK63C,YAKxBzuD,KAAKkkB,OAAStN,EAAKsN,OAKnBlkB,KAAK+tH,QAAUn3G,EAAKm3G,QAKpB/tH,KAAKmW,WAAaS,EAAKT,WAKvBnW,KAAKguH,cAAgBp3G,EAAKo3G,cAK1BhuH,KAAKiuH,eAAiBr3G,EAAKq3G,eAK3BjuH,KAAK+mD,OAASnwC,EAAKmwC,OAKnB/mD,KAAKkuH,SAAWt3G,EAAKs3G,SAKrBluH,KAAKmuH,MAAQv3G,EAAKu3G,MAKlBnuH,KAAKu8F,QAAU3lF,EAAK2lF,QAKpBv8F,KAAKouH,kBAKLpuH,KAAKquH,UAAYz3G,EAAKy3G,UAKtBruH,KAAKsuH,OAAS13G,EAAK03G,OAKnBtuH,KAAKuuH,aAAe,EAKpBvuH,KAAKwuH,YAMLxuH,KAAKyuH,YAMLzuH,KAAK0uH,OAAS,EAMd1uH,KAAKo+E,OAAS,IAQlBh8C,EAAOw6C,QAAQq4B,IAAM,EAMrB7yE,EAAOw6C,QAAQs4B,WAAa,EAM5B9yE,EAAOw6C,QAAQ+xC,MAAQ,EAMvBvsF,EAAOw6C,QAAQgyC,KAAO,EAMtBxsF,EAAOw6C,QAAQiyC,MAAQ,EAMvBzsF,EAAOw6C,QAAQkyC,KAAO,EAEtB1sF,EAAOw6C,QAAQ/4E,WAcXwI,OAAQ,SAAUgR,EAAMlW,EAAOC,EAAQs1E,EAAWC,EAAY5B,GAW1D,MATqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKmyC,KAAKC,OAEtDpyC,KAAKmH,MAAQA,EACbnH,KAAKoH,OAASA,EAEdpH,KAAK+uH,YAAYryC,EAAWC,GAE5B38E,KAAK+mD,OAAO1iD,OAAS,EAEdrE,KAAKgvH,iBAAiB3xG,EAAMlW,EAAOC,EAAQs1E,EAAWC,EAAY5B,IAW7Eg0C,YAAa,SAAUryC,EAAWC,GAE9B38E,KAAK08E,UAAYA,EACjB18E,KAAK28E,WAAaA,EAClB38E,KAAKguH,cAAgBhuH,KAAKmH,MAAQu1E,EAClC18E,KAAKiuH,eAAiBjuH,KAAKoH,OAASu1E,GAkBxCsyC,gBAAiB,SAAUC,EAASvsG,EAAK+5D,EAAWC,EAAYwyC,EAAYC,EAAaC,GAmBrF,GAjByB,mBAAd3yC,KAA6BA,EAAY18E,KAAK08E,WAC/B,mBAAfC,KAA8BA,EAAa38E,KAAK28E,YACjC,mBAAfwyC,KAA8BA,EAAa,GAC3B,mBAAhBC,KAA+BA,EAAc,GACrC,mBAARC,KAAuBA,EAAM,GAGtB,IAAd3yC,IAEAA,EAAY,IAGG,IAAfC,IAEAA,EAAa,IAGE,mBAARh6D,GACX,CACI,GAAuB,gBAAZusG,GAYP,MAAO,KARP,IAFAvsG,EAAMusG,GAEDlvH,KAAKmyC,KAAK0B,MAAM2wC,cAAc7hE,GAG/B,MADApf,SAAQo0C,KAAK,6DAA+Dh1B,EAAM,KAC3E,KASnB,GAAuB,gBAAZusG,KAEPA,EAAUlvH,KAAKsvH,gBAAgBJ,GAEf,OAAZA,GAAoBlvH,KAAKkkB,SAAWke,EAAOw6C,QAAQs4B,YAGnD,MADA3xG,SAAQo0C,KAAK,yFAA2Fh1B,EAAM,KACvG,IAIf,IAAI3iB,KAAKkuH,SAASgB,GAGd,MADAlvH,MAAKkuH,SAASgB,GAASK,SAASvvH,KAAKmyC,KAAK0B,MAAM5S,SAASte,IAClD3iB,KAAKkuH,SAASgB,EAIrB,IAAIM,GAAS,GAAIptF,GAAOqtF,QAAQ9sG,EAAK0sG,EAAK3yC,EAAWC,EAAYwyC,EAAYC,KAE7EI,GAAOD,SAASvvH,KAAKmyC,KAAK0B,MAAM5S,SAASte,IAEzC3iB,KAAKkuH,SAAS5pH,KAAKkrH,EAUnB,KAAK,GARDrrH,GAAInE,KAAKkuH,SAAS7pH,OAAS,EAC3BE,EAAI4qH,EACJ3qH,EAAI2qH,EAEJh+F,EAAQ,EACRu+F,EAAS,EACTC,EAAS,EAEJn4B,EAAI63B,EAAK73B,EAAI63B,EAAMG,EAAOhyF,QAE/Bx9B,KAAKmuH,MAAM32B,IAAMjzF,EAAGC,EAAGL,GAEvBI,GAAKm4E,EAAY0yC,EAEjBj+F,IAEIA,IAAUq+F,EAAOhyF,SAKrBkyF,IAEIA,IAAWF,EAAOI,UAElBrrH,EAAI4qH,EACJ3qH,GAAKm4E,EAAayyC,EAElBM,EAAS,EACTC,IAEIA,IAAWH,EAAOK,OAvBYr4B,KA8B1C,MAAOg4B,IAyBfM,kBAAmB,SAAUzyG,EAAMgyG,EAAK1sG,EAAK5S,EAAOyoC,EAAQkrC,EAAU3I,EAAOg1C,EAAaC,GAQtF,GANsB,mBAAXx3E,KAA0BA,GAAS,GACtB,mBAAbkrC,KAA4BA,GAAW,GAC7B,mBAAV3I,KAAyBA,EAAQ/6E,KAAKmyC,KAAKC,OAC3B,mBAAhB29E,KAA+BA,EAAc3tF,EAAO12B,QACxC,mBAAZskH,KAA2BA,GAAU,IAE3ChwH,KAAKu8F,QAAQl/E,GAGd,WADA9Z,SAAQo0C,KAAK,8DAAgEt6B,EAMjF,KAAK,GAFDyW,GAEK3vB,EAAI,EAAGm3B,EAAMt7B,KAAKu8F,QAAQl/E,GAAMhZ,OAAYi3B,EAAJn3B,EAASA,IAEtD,GAAInE,KAAKu8F,QAAQl/E,GAAMlZ,GAAGkrH,MAAQA,EAClC,CACIv7F,EAAS,GAAIi8F,GAAY/vH,KAAKmyC,KAAMnyC,KAAKu8F,QAAQl/E,GAAMlZ,GAAGI,EAAGvE,KAAKu8F,QAAQl/E,GAAMlZ,GAAGK,EAAGme,EAAK5S,GAE3F+jB,EAAOzW,KAAOrd,KAAKu8F,QAAQl/E,GAAMlZ,GAAGkZ,KACpCyW,EAAO7rB,QAAUjI,KAAKu8F,QAAQl/E,GAAMlZ,GAAG8D,QACvC6rB,EAAO4vD,SAAWA,EAClB5vD,EAAO0kB,OAASA,EAEZw3E,IAEAl8F,EAAOtvB,GAAKsvB,EAAO1sB,QAGvB2zE,EAAM/xC,IAAIlV,EAEV,KAAK,GAAI8uB,KAAY5iD,MAAKu8F,QAAQl/E,GAAMlZ,GAAGgS,WAEvC4kE,EAAMzxE,IAAIwqB,EAAQ8uB,EAAU5iD,KAAKu8F,QAAQl/E,GAAMlZ,GAAGgS,WAAWysC,IAAW,GAAO,EAAO,GAAG,KAsBzGqtE,gBAAiB,SAAU9B,EAAO+B,EAAcvtG,EAAKukC,EAAO6zB,EAAO5kE,GAE1C,gBAAVg4G,KAAsBA,GAASA,IAEd,mBAAjB+B,IAAiD,OAAjBA,EAEvCA,KAE6B,gBAAjBA,KAEZA,GAAgBA,IAGpBhpE,EAAQlnD,KAAKmwH,SAASjpE,GAED,mBAAV6zB,KAAyBA,EAAQ/6E,KAAKmyC,KAAKC,OAC5B,mBAAfj8B,KAA8BA,MAEV1I,SAA3B0I,EAAWi6G,cAEXj6G,EAAWi6G,YAAchuF,EAAO12B,QAGT+B,SAAvB0I,EAAW65G,UAEX75G,EAAW65G,SAAU,EAGzB,IAAIK,GAAKrwH,KAAK+mD,OAAOG,GAAO//C,MACxBmpH,EAAKtwH,KAAK+mD,OAAOG,GAAO9/C,MAI5B,IAFApH,KAAKwmC,KAAK,EAAG,EAAG6pF,EAAIC,EAAIppE,GAEpBlnD,KAAKyuH,SAASpqH,OAAS,EAEvB,MAAO,EAMX,KAAK,GAFDyvB,GADA0J,EAAQ,EAGHr5B,EAAI,EAAGm3B,EAAMt7B,KAAKyuH,SAASpqH,OAAYi3B,EAAJn3B,EAASA,IAEjD,GAA8C,KAA1CgqH,EAAM9qH,QAAQrD,KAAKyuH,SAAStqH,GAAGwI,OACnC,CACImnB,EAAS,GAAI3d,GAAWi6G,YAAYpwH,KAAKmyC,KAAMnyC,KAAKyuH,SAAStqH,GAAGi6G,OAAQp+G,KAAKyuH,SAAStqH,GAAGk6G,OAAQ17F,EAEjG,KAAK,GAAIigC,KAAYzsC,GAEjB2d,EAAO8uB,GAAYzsC,EAAWysC,EAGlCm4B,GAAM/xC,IAAIlV,GACV0J,IAKR,GAA4B,IAAxB0yF,EAAa7rH,OAGb,IAAKF,EAAI,EAAGA,EAAIgqH,EAAM9pH,OAAQF,IAE1BnE,KAAKq5C,QAAQ80E,EAAMhqH,GAAI+rH,EAAa,GAAI,EAAG,EAAGG,EAAIC,EAAIppE,OAGzD,IAAIgpE,EAAa7rH,OAAS,EAG3B,IAAKF,EAAI,EAAGA,EAAIgqH,EAAM9pH,OAAQF,IAE1BnE,KAAKq5C,QAAQ80E,EAAMhqH,GAAI+rH,EAAa/rH,GAAI,EAAG,EAAGksH,EAAIC,EAAIppE,EAI9D,OAAO1pB,IAiBX+yF,YAAa,SAAUrpE,EAAO//C,EAAOC,EAAQ2zE,GAIpB,mBAAV5zE,KAAyBA,EAAQnH,KAAKmyC,KAAKhrC,OAChC,mBAAXC,KAA0BA,EAASpH,KAAKmyC,KAAK/qC,QACnC,mBAAV2zE,KAAyBA,EAAQ/6E,KAAKmyC,KAAKC,MAEtD,IAAIzlC,GAAQu6C,CAOZ,OALqB,gBAAVA,KAEPv6C,EAAQ3M,KAAKwwH,cAActpE,IAGjB,OAAVv6C,GAAkBA,EAAQ3M,KAAK+mD,OAAO1iD,WAEtCd,SAAQo0C,KAAK,gDAAkDhrC,GAI5DouE,EAAM/xC,IAAI,GAAI5G,GAAOquF,aAAazwH,KAAKmyC,KAAMnyC,KAAM2M,EAAOxF,EAAOC,KAgB5E4nH,iBAAkB,SAAU3xG,EAAMlW,EAAOC,EAAQs1E,EAAWC,EAAY5B,GAIpE,GAFqB,mBAAVA,KAAyBA,EAAQ/6E,KAAKmyC,KAAKC,OAErB,OAA7BpyC,KAAKwwH,cAAcnzG,GAGnB,WADA9Z,SAAQo0C,KAAK,oEA0BjB,KAAK,GAHDyzD,GAnBAlkD,GAEA7pC,KAAMA,EACN9Y,EAAG,EACHC,EAAG,EACH2C,MAAOA,EACPC,OAAQA,EACR4mH,cAAe7mH,EAAQu1E,EACvBuxC,eAAgB7mH,EAASu1E,EACzB30E,MAAO,EACPC,SAAS,EACTkO,cACAu6G,WACApjD,aACAqjD,UACA/5G,KAAM,MAKN+wB,KAEKnjC,EAAI,EAAO4C,EAAJ5C,EAAYA,IAC5B,CACI4mG,IAEA,KAAK,GAAI7mG,GAAI,EAAO4C,EAAJ5C,EAAWA,IAGvB6mG,EAAI9mG,KAAK,GAAI89B,GAAOkrF,KAAKpmE,EAAO,GAAI3iD,EAAGC,EAAGk4E,EAAWC,GAGzDh1C,GAAOrjC,KAAK8mG,GAGhBlkD,EAAMtwC,KAAO+wB,EAEb3nC,KAAK+mD,OAAOziD,KAAK4iD,GAEjBlnD,KAAKuuH,aAAevuH,KAAK+mD,OAAO1iD,OAAS,CAEzC,IAAIghB,GAAI6hC,EAAM8mE,cACVvzF,EAAIysB,EAAM+mE,cAEV5oG,GAAIrlB,KAAKmyC,KAAKhrC,QAEdke,EAAIrlB,KAAKmyC,KAAKhrC,OAGdszB,EAAIz6B,KAAKmyC,KAAK/qC,SAEdqzB,EAAIz6B,KAAKmyC,KAAK/qC,OAGlB,IAAIugC,GAAS,GAAIvF,GAAOquF,aAAazwH,KAAKmyC,KAAMnyC,KAAMA,KAAK+mD,OAAO1iD,OAAS,EAAGghB,EAAGoV,EAGjF,OAFAkN,GAAOtqB,KAAOA,EAEP09D,EAAM/xC,IAAIrB,IAarB8Q,SAAU,SAAUgnD,EAAUpiF,GAE1B,IAAK,GAAIlZ,GAAI,EAAGA,EAAIs7F,EAASp7F,OAAQF,IAEjC,GAAIs7F,EAASt7F,GAAGkZ,OAASA,EAErB,MAAOlZ,EAIf,OAAO,OAWXqsH,cAAe,SAAUnzG,GAErB,MAAOrd,MAAKy4C,SAASz4C,KAAK+mD,OAAQ1pC,IAWtCiyG,gBAAiB,SAAUjyG,GAEvB,MAAOrd,MAAKy4C,SAASz4C,KAAKkuH,SAAU7wG,IAWxCuzG,cAAe,SAAUvzG,GAErB,MAAOrd,MAAKy4C,SAASz4C,KAAKsuH,OAAQjxG,IAWtCwzG,eAAgB,SAAUxzG,GAEtB,MAAOrd,MAAKy4C,SAASz4C,KAAKu8F,QAASl/E,IAevCyzG,qBAAsB,SAAUJ,EAASr2G,EAAUy8B,EAAiBoQ,GAIhE,GAFAA,EAAQlnD,KAAKmwH,SAASjpE,GAEC,gBAAZwpE,GAIP1wH,KAAK+mD,OAAOG,GAAOomB,UAAUojD,IAAar2G,SAAUA,EAAUy8B,gBAAiBA,OAI/E,KAAK,GAAI3yC,GAAI,EAAGm3B,EAAMo1F,EAAQrsH,OAAYi3B,EAAJn3B,EAASA,IAE3CnE,KAAK+mD,OAAOG,GAAOomB,UAAUojD,EAAQvsH,KAAQkW,SAAUA,EAAUy8B,gBAAiBA,IAoB9Fi6E,wBAAyB,SAAUxsH,EAAGC,EAAG2C,EAAOC,EAAQiT,EAAUy8B,EAAiBoQ,GAM/E,GAJAA,EAAQlnD,KAAKmwH,SAASjpE,GAEtBlnD,KAAKwmC,KAAKjiC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,KAE3BlnD,KAAKyuH,SAASpqH,OAAS,GAK3B,IAAK,GAAIF,GAAI,EAAGA,EAAInE,KAAKyuH,SAASpqH,OAAQF,IAEtCnE,KAAKyuH,SAAStqH,GAAGqpH,qBAAqBnzG,EAAUy8B,IAexD22E,aAAc,SAAUiD,EAAS9C,EAAU1mE,EAAO8pE,GAO9C,GALwB,mBAAbpD,KAA4BA,GAAW,GACvB,mBAAhBoD,KAA+BA,GAAc,GAExD9pE,EAAQlnD,KAAKmwH,SAASjpE,GAEC,gBAAZwpE,GAEP,MAAO1wH,MAAKixH,oBAAoBP,EAAS9C,EAAU1mE,GAAO,EAK1D,KAAK,GAAI/iD,GAAI,EAAGm3B,EAAMo1F,EAAQrsH,OAAYi3B,EAAJn3B,EAASA,IAE3CnE,KAAKixH,oBAAoBP,EAAQvsH,GAAIypH,EAAU1mE,GAAO,EAGtD8pE,IAGAhxH,KAAKkxH,eAAehqE,IAkBhCiqE,oBAAqB,SAAU/hH,EAAOJ,EAAM4+G,EAAU1mE,EAAO8pE,GAOzD,GALwB,mBAAbpD,KAA4BA,GAAW,GACvB,mBAAhBoD,KAA+BA,GAAc,GAExD9pE,EAAQlnD,KAAKmwH,SAASjpE,KAElB93C,EAAQJ,GAAZ,CAKA,IAAK,GAAIrC,GAAQyC,EAAgBJ,GAATrC,EAAeA,IAEnC3M,KAAKixH,oBAAoBtkH,EAAOihH,EAAU1mE,GAAO,EAGjD8pE,IAGAhxH,KAAKkxH,eAAehqE,KAe5BkqE,wBAAyB,SAAUV,EAAS9C,EAAU1mE,EAAO8pE,GAEjC,mBAAbpD,KAA4BA,GAAW,GACvB,mBAAhBoD,KAA+BA,GAAc,GAExD9pE,EAAQlnD,KAAKmwH,SAASjpE,EAGtB,KAAK,GAAI/iD,GAAI,EAAGm3B,EAAMt7B,KAAKmuH,MAAM9pH,OAAYi3B,EAAJn3B,EAASA,IAEnB,KAAvBusH,EAAQrtH,QAAQc,IAEhBnE,KAAKixH,oBAAoB9sH,EAAGypH,EAAU1mE,GAAO,EAIjD8pE,IAGAhxH,KAAKkxH,eAAehqE,IAgB5B+pE,oBAAqB,SAAUtkH,EAAOihH,EAAU1mE,EAAO8pE,GAMnD,GAJwB,mBAAbpD,KAA4BA,GAAW,GAC7B,mBAAV1mE,KAAyBA,EAAQlnD,KAAKuuH,cACtB,mBAAhByC,KAA+BA,GAAc,GAEpDpD,EAEA5tH,KAAKouH,eAAe9pH,KAAKqI,OAG7B,CACI,GAAIxI,GAAInE,KAAKouH,eAAe/qH,QAAQsJ,EAEhCxI,GAAI,IAEJnE,KAAKouH,eAAevhH,OAAO1I,EAAG,GAItC,IAAK,GAAIK,GAAI,EAAGA,EAAIxE,KAAK+mD,OAAOG,GAAO9/C,OAAQ5C,IAE3C,IAAK,GAAID,GAAI,EAAGA,EAAIvE,KAAK+mD,OAAOG,GAAO//C,MAAO5C,IAC9C,CACI,GAAIkjH,GAAOznH,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,EAElCkjH,IAAQA,EAAK96G,QAAUA,IAEnBihH,EAEAnG,EAAKgG,cAAa,GAAM,GAAM,GAAM,GAIpChG,EAAKiG,iBAGTjG,EAAKK,QAAU8F,EACfnG,EAAKM,WAAa6F,EAClBnG,EAAKG,SAAWgG,EAChBnG,EAAKI,UAAY+F,GAW7B,MANIoD,IAGAhxH,KAAKkxH,eAAehqE,GAGjBA,GAYXipE,SAAU,SAAUjpE,GAehB,MAbqB,mBAAVA,GAEPA,EAAQlnD,KAAKuuH,aAES,gBAAVrnE,GAEZA,EAAQlnD,KAAKwwH,cAActpE,GAEtBA,YAAiB9kB,GAAOquF,eAE7BvpE,EAAQA,EAAMv6C,OAGXu6C,GAWXmqE,sBAAuB,SAAU9nH,GAQ7B,GANIA,KAAU,GAAQvJ,KAAKsxH,yBAA0B,IAEjDtxH,KAAKsxH,uBAAwB,EAC7BtxH,KAAKuxH,sBAGLhoH,KAAU,GAASvJ,KAAKsxH,yBAA0B,EACtD,CACItxH,KAAKsxH,uBAAwB,CAE7B,KAAK,GAAIntH,KAAKnE,MAAKuxH,kBAEfvxH,KAAKkxH,eAAe/sH,EAGxBnE,MAAKuxH,mBAAoB,IAYjCL,eAAgB,SAAUhqE,GAEtB,GAAIlnD,KAAKsxH,sBAGL,YADAtxH,KAAKuxH,kBAAkBrqE,IAAS,EASpC,KAAK,GALDsqE,GAAQ,KACRC,EAAQ,KACRtrF,EAAO,KACPD,EAAQ,KAEH1hC,EAAI,EAAGi2B,EAAIz6B,KAAK+mD,OAAOG,GAAO9/C,OAAYqzB,EAAJj2B,EAAOA,IAElD,IAAK,GAAID,GAAI,EAAG8gB,EAAIrlB,KAAK+mD,OAAOG,GAAO//C,MAAWke,EAAJ9gB,EAAOA,IACrD,CACI,GAAIkjH,GAAOznH,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,EAElCkjH,KAEA+J,EAAQxxH,KAAK0xH,aAAaxqE,EAAO3iD,EAAGC,GACpCitH,EAAQzxH,KAAK2xH,aAAazqE,EAAO3iD,EAAGC,GACpC2hC,EAAOnmC,KAAK4xH,YAAY1qE,EAAO3iD,EAAGC,GAClC0hC,EAAQlmC,KAAK6xH,aAAa3qE,EAAO3iD,EAAGC,GAEhCijH,EAAKmG,WAELnG,EAAKK,SAAU,EACfL,EAAKM,YAAa,EAClBN,EAAKG,UAAW,EAChBH,EAAKI,WAAY,GAGjB2J,GAASA,EAAM5D,WAGfnG,EAAKK,SAAU,GAGf2J,GAASA,EAAM7D,WAGfnG,EAAKM,YAAa,GAGlB5hF,GAAQA,EAAKynF,WAGbnG,EAAKG,UAAW,GAGhB1hF,GAASA,EAAM0nF,WAGfnG,EAAKI,WAAY,MAiBrC6J,aAAc,SAAUxqE,EAAO3iD,EAAGC,GAE9B,MAAIA,GAAI,EAEGxE,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,EAAI,GAAGD,GAGnC,MAaXotH,aAAc,SAAUzqE,EAAO3iD,EAAGC,GAE9B,MAAIA,GAAIxE,KAAK+mD,OAAOG,GAAO9/C,OAAS,EAEzBpH,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,EAAI,GAAGD,GAGnC,MAaXqtH,YAAa,SAAU1qE,EAAO3iD,EAAGC,GAE7B,MAAID,GAAI,EAEGvE,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,EAAI,GAGnC,MAaXstH,aAAc,SAAU3qE,EAAO3iD,EAAGC,GAE9B,MAAID,GAAIvE,KAAK+mD,OAAOG,GAAO//C,MAAQ,EAExBnH,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,EAAI,GAGnC,MAUXutH,SAAU,SAAU5qE,GAEhBA,EAAQlnD,KAAKmwH,SAASjpE,GAElBlnD,KAAK+mD,OAAOG,KAEZlnD,KAAKuuH,aAAernE,IAc5B6qE,QAAS,SAAUxtH,EAAGC,EAAG0iD,GAIrB,MAFAA,GAAQlnD,KAAKmwH,SAASjpE,GAEdlnD,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAGoI,MAAQ,IAalDqlH,WAAY,SAAUztH,EAAGC,EAAG0iD,GAIxB,GAFAA,EAAQlnD,KAAKmwH,SAASjpE,GAElB3iD,GAAK,GAAKA,EAAIvE,KAAK+mD,OAAOG,GAAO//C,OAAS3C,GAAK,GAAKA,EAAIxE,KAAK+mD,OAAOG,GAAO9/C,QAEvEpH,KAAK+xH,QAAQxtH,EAAGC,EAAG0iD,GACvB,CACI,GAAIugE,GAAOznH,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,EAQtC,OANAvE,MAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAK,GAAI69B,GAAOkrF,KAAKttH,KAAK+mD,OAAOG,GAAQ,GAAI3iD,EAAGC,EAAGxE,KAAK08E,UAAW18E,KAAK28E,YAEnG38E,KAAK+mD,OAAOG,GAAO19C,OAAQ,EAE3BxJ,KAAKkxH,eAAehqE,GAEbugE,IAiBnBwK,kBAAmB,SAAU1tH,EAAGC,EAAGk4E,EAAWC,EAAYz1B,GAOtD,MALAA,GAAQlnD,KAAKmwH,SAASjpE,GAEtB3iD,EAAIvE,KAAKmyC,KAAK6B,KAAKylD,YAAYl1F,EAAGm4E,GAAaA,EAC/Cl4E,EAAIxE,KAAKmyC,KAAK6B,KAAKylD,YAAYj1F,EAAGm4E,GAAcA,EAEzC38E,KAAKgyH,WAAWztH,EAAGC,EAAG0iD,IAejCgrE,QAAS,SAAUzK,EAAMljH,EAAGC,EAAG0iD,GAE3B,GAAa,OAATugE,EAEA,MAAOznH,MAAKgyH,WAAWztH,EAAGC,EAAG0iD,EAKjC,IAFAA,EAAQlnD,KAAKmwH,SAASjpE,GAElB3iD,GAAK,GAAKA,EAAIvE,KAAK+mD,OAAOG,GAAO//C,OAAS3C,GAAK,GAAKA,EAAIxE,KAAK+mD,OAAOG,GAAO9/C,OAC/E,CACI,GAAIuF,EA0CJ,OAxCI86G,aAAgBrlF,GAAOkrF,MAEvB3gH,EAAQ86G,EAAK96G,MAET3M,KAAK+xH,QAAQxtH,EAAGC,EAAG0iD,GAEnBlnD,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAGiiC,KAAKihF,GAInCznH,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAK,GAAI69B,GAAOkrF,KAAKpmE,EAAOv6C,EAAOpI,EAAGC,EAAGijH,EAAKtgH,MAAOsgH,EAAKrgH,UAKzFuF,EAAQ86G,EAEJznH,KAAK+xH,QAAQxtH,EAAGC,EAAG0iD,GAEnBlnD,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAGoI,MAAQA,EAItC3M,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAK,GAAI69B,GAAOkrF,KAAKttH,KAAK+mD,OAAOG,GAAQv6C,EAAOpI,EAAGC,EAAGxE,KAAK08E,UAAW18E,KAAK28E,aAI1G38E,KAAKouH,eAAe/qH,QAAQsJ,GAAS,GAErC3M,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAGkpH,cAAa,GAAM,GAAM,GAAM,GAI7DztH,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAGmpH,iBAGlC1tH,KAAK+mD,OAAOG,GAAO19C,OAAQ,EAE3BxJ,KAAKkxH,eAAehqE,GAEblnD,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAGtC,MAAO,OAgBX4tH,eAAgB,SAAU1K,EAAMljH,EAAGC,EAAGk4E,EAAWC,EAAYz1B,GAOzD,MALAA,GAAQlnD,KAAKmwH,SAASjpE,GAEtB3iD,EAAIvE,KAAKmyC,KAAK6B,KAAKylD,YAAYl1F,EAAGm4E,GAAaA,EAC/Cl4E,EAAIxE,KAAKmyC,KAAK6B,KAAKylD,YAAYj1F,EAAGm4E,GAAcA,EAEzC38E,KAAKkyH,QAAQzK,EAAMljH,EAAGC,EAAG0iD,IAiBpCkrE,gBAAiB,SAAUzlH,EAAO0lH,EAAMnhG,EAASg2B,GAEzB,mBAATmrE,KAAwBA,EAAO,GACnB,mBAAZnhG,KAA2BA,GAAU,GAEhDg2B,EAAQlnD,KAAKmwH,SAASjpE,EAEtB,IAAI3hD,GAAI,CAER,IAAI2rB,GAEA,IAAK,GAAI1sB,GAAIxE,KAAK+mD,OAAOG,GAAO9/C,OAAS,EAAG5C,GAAK,EAAGA,IAEhD,IAAK,GAAID,GAAIvE,KAAK+mD,OAAOG,GAAO//C,MAAQ,EAAG5C,GAAK,EAAGA,IAE/C,GAAIvE,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAGoI,QAAUA,EAC5C,CACI,GAAIpH,IAAM8sH,EAEN,MAAOryH,MAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,EAIlCgB,UAQhB,KAAK,GAAIf,GAAI,EAAGA,EAAIxE,KAAK+mD,OAAOG,GAAO9/C,OAAQ5C,IAE3C,IAAK,GAAID,GAAI,EAAGA,EAAIvE,KAAK+mD,OAAOG,GAAO//C,MAAO5C,IAE1C,GAAIvE,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAGoI,QAAUA,EAC5C,CACI,GAAIpH,IAAM8sH,EAEN,MAAOryH,MAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,EAIlCgB,KAOpB,MAAO,OAcX+sH,QAAS,SAAU/tH,EAAGC,EAAG0iD,EAAOqrE,GAM5B,MAJuB,mBAAZA,KAA2BA,GAAU,GAEhDrrE,EAAQlnD,KAAKmwH,SAASjpE,GAElB3iD,GAAK,GAAKA,EAAIvE,KAAK+mD,OAAOG,GAAO//C,OAAS3C,GAAK,GAAKA,EAAIxE,KAAK+mD,OAAOG,GAAO9/C,OAE/B,KAAxCpH,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAAGoI,MAE1B4lH,EAEOvyH,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAI3B,KAKJvE,KAAK+mD,OAAOG,GAAOtwC,KAAKpS,GAAGD,GAK/B,MAgBfiuH,eAAgB,SAAUjuH,EAAGC,EAAGk4E,EAAWC,EAAYz1B,GAUnD,MARyB,mBAAdw1B,KAA6BA,EAAY18E,KAAK08E,WAC/B,mBAAfC,KAA8BA,EAAa38E,KAAK28E,YAE3Dz1B,EAAQlnD,KAAKmwH,SAASjpE,GAEtB3iD,EAAIvE,KAAKmyC,KAAK6B,KAAKylD,YAAYl1F,EAAGm4E,GAAaA,EAC/Cl4E,EAAIxE,KAAKmyC,KAAK6B,KAAKylD,YAAYj1F,EAAGm4E,GAAcA,EAEzC38E,KAAKsyH,QAAQ/tH,EAAGC,EAAG0iD,IAe9B1gB,KAAM,SAAUjiC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,GAIjC,GAFAA,EAAQlnD,KAAKmwH,SAASjpE,IAEjBlnD,KAAK+mD,OAAOG,GAGb,YADAlnD,KAAKyuH,SAASpqH,OAAS,EAIV,oBAANE,KAAqBA,EAAI,GACnB,mBAANC,KAAqBA,EAAI,GACf,mBAAV2C,KAAyBA,EAAQnH,KAAK+mD,OAAOG,GAAO//C,OACzC,mBAAXC,KAA0BA,EAASpH,KAAK+mD,OAAOG,GAAO9/C,QAEzD,EAAJ7C,IAEAA,EAAI,GAGA,EAAJC,IAEAA,EAAI,GAGJ2C,EAAQnH,KAAK+mD,OAAOG,GAAO//C,QAE3BA,EAAQnH,KAAK+mD,OAAOG,GAAO//C,OAG3BC,EAASpH,KAAK+mD,OAAOG,GAAO9/C,SAE5BA,EAASpH,KAAK+mD,OAAOG,GAAO9/C,QAGhCpH,KAAKyuH,SAASpqH,OAAS,EAEvBrE,KAAKyuH,SAASnqH,MAAOC,EAAGA,EAAGC,EAAGA,EAAG2C,MAAOA,EAAOC,OAAQA,EAAQ8/C,MAAOA,GAEtE,KAAK,GAAIxhD,GAAKlB,EAAQA,EAAI4C,EAAT1B,EAAiBA,IAE9B,IAAK,GAAID,GAAKlB,EAAQA,EAAI4C,EAAT1B,EAAgBA,IAE7BzF,KAAKyuH,SAASnqH,KAAKtE,KAAK+mD,OAAOG,GAAOtwC,KAAKlR,GAAID,GAIvD,OAAOzF,MAAKyuH,UAahBgE,MAAO,SAAUluH,EAAGC,EAAGkuH,EAAWxrE,GAO9B,GALiB,mBAAN3iD,KAAqBA,EAAI,GACnB,mBAANC,KAAqBA,EAAI,GAEpC0iD,EAAQlnD,KAAKmwH,SAASjpE,GAEjBwrE,KAAaA,EAAUruH,OAAS,GAArC,CASA,IAAK,GAHDwqF,GAAQ6jC,EAAU,GAAGnuH,EAAIA,EACzBuqF,EAAQ4jC,EAAU,GAAGluH,EAAIA,EAEpBL,EAAI,EAAGA,EAAIuuH,EAAUruH,OAAQF,IAElCnE,KAAK+mD,OAAOG,GAAOtwC,KAAMk4E,EAAQ4jC,EAAUvuH,GAAGK,GAAKqqF,EAAQ6jC,EAAUvuH,GAAGI,GAAIiiC,KAAKksF,EAAUvuH,GAGrGnE,MAAK+mD,OAAOG,GAAO19C,OAAQ,EACrBxJ,KAAKkxH,eAAehqE,KAgBxBzF,KAAM,SAAUkxE,EAAOC,EAAOruH,EAAGC,EAAG2C,EAAOC,EAAQ8/C,GAE/CA,EAAQlnD,KAAKmwH,SAASjpE,GAEtBlnD,KAAKwmC,KAAKjiC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,GAE3BlnD,KAAKyuH,SAASpqH,OAAS,IAK3BrE,KAAK0uH,OAASiE,EACd3yH,KAAKo+E,OAASw0C,EAEd5yH,KAAKyuH,SAAS9hF,QAAQ3sC,KAAK6yH,YAAa7yH,MAExCA,KAAKyyH,MAAMluH,EAAGC,EAAGxE,KAAKyuH,SAAUvnE,KAWpC2rE,YAAa,SAAUtpH,GAEfA,EAAMoD,QAAU3M,KAAK0uH,OAGrBnlH,EAAMoD,MAAQ3M,KAAKo+E,OAEd70E,EAAMoD,QAAU3M,KAAKo+E,SAG1B70E,EAAMoD,MAAQ3M,KAAK0uH,SAiB3B/hF,QAAS,SAAUtyB,EAAUvJ,EAASvM,EAAGC,EAAG2C,EAAOC,EAAQ8/C,GAEvDA,EAAQlnD,KAAKmwH,SAASjpE,GAEtBlnD,KAAKwmC,KAAKjiC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,GAE3BlnD,KAAKyuH,SAASpqH,OAAS,IAK3BrE,KAAKyuH,SAAS9hF,QAAQtyB,EAAUvJ,GAEhC9Q,KAAKyyH,MAAMluH,EAAGC,EAAGxE,KAAKyuH,SAAUvnE,KAgBpC7N,QAAS,SAAUxnC,EAAQ21B,EAAMjjC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,GAMlD,GAJAA,EAAQlnD,KAAKmwH,SAASjpE,GAEtBlnD,KAAKwmC,KAAKjiC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,KAE3BlnD,KAAKyuH,SAASpqH,OAAS,GAA3B,CAKA,IAAK,GAAIF,GAAI,EAAGA,EAAInE,KAAKyuH,SAASpqH,OAAQF,IAElCnE,KAAKyuH,SAAStqH,GAAGwI,QAAUkF,IAE3B7R,KAAKyuH,SAAStqH,GAAGwI,MAAQ66B,EAIjCxnC,MAAKyyH,MAAMluH,EAAGC,EAAGxE,KAAKyuH,SAAUvnE,KAcpCpiB,OAAQ,SAAUvgC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,GAMnC,GAJAA,EAAQlnD,KAAKmwH,SAASjpE,GAEtBlnD,KAAKwmC,KAAKjiC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,KAE3BlnD,KAAKyuH,SAASpqH,OAAS,GAA3B,CAOA,IAAK,GAFDqsH,MAEKl5B,EAAI,EAAGA,EAAIx3F,KAAKyuH,SAASpqH,OAAQmzF,IAEtC,GAAIx3F,KAAKyuH,SAASj3B,GAAG7qF,MACrB,CACI,GAAIoK,GAAM/W,KAAKyuH,SAASj3B,GAAG7qF,KAEE,MAAzB+jH,EAAQrtH,QAAQ0T,IAEhB25G,EAAQpsH,KAAKyS,GAKzB,IAAK,GAAI5S,GAAI,EAAGA,EAAInE,KAAKyuH,SAASpqH,OAAQF,IAEtCnE,KAAKyuH,SAAStqH,GAAGwI,MAAQ3M,KAAKmyC,KAAKmC,IAAImqD,KAAKiyB,EAGhD1wH,MAAKyyH,MAAMluH,EAAGC,EAAGxE,KAAKyuH,SAAUvnE,KAcpC1hB,QAAS,SAAUjhC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,GAMpC,GAJAA,EAAQlnD,KAAKmwH,SAASjpE,GAEtBlnD,KAAKwmC,KAAKjiC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,KAE3BlnD,KAAKyuH,SAASpqH,OAAS,GAA3B,CAOA,IAAK,GAFDqsH,MAEKl5B,EAAI,EAAGA,EAAIx3F,KAAKyuH,SAASpqH,OAAQmzF,IAElCx3F,KAAKyuH,SAASj3B,GAAG7qF,OAEjB+jH,EAAQpsH,KAAKtE,KAAKyuH,SAASj3B,GAAG7qF,MAItCy1B,GAAOgC,MAAMoB,QAAQkrF,EAErB,KAAK,GAAIvsH,GAAI,EAAGA,EAAInE,KAAKyuH,SAASpqH,OAAQF,IAEtCnE,KAAKyuH,SAAStqH,GAAGwI,MAAQ+jH,EAAQvsH,EAAI,EAGzCnE,MAAKyyH,MAAMluH,EAAGC,EAAGxE,KAAKyuH,SAAUvnE,KAepCpzC,KAAM,SAAUnH,EAAOpI,EAAGC,EAAG2C,EAAOC,EAAQ8/C,GAMxC,GAJAA,EAAQlnD,KAAKmwH,SAASjpE,GAEtBlnD,KAAKwmC,KAAKjiC,EAAGC,EAAG2C,EAAOC,EAAQ8/C,KAE3BlnD,KAAKyuH,SAASpqH,OAAS,GAA3B,CAKA,IAAK,GAAIF,GAAI,EAAGA,EAAInE,KAAKyuH,SAASpqH,OAAQF,IAEtCnE,KAAKyuH,SAAStqH,GAAGwI,MAAQA,CAG7B3M,MAAKyyH,MAAMluH,EAAGC,EAAGxE,KAAKyuH,SAAUvnE,KASpC4rE,gBAAiB,WAEb9yH,KAAK+mD,OAAO1iD,OAAS,EACrBrE,KAAKuuH,aAAe,GASxBwE,KAAM,WAKF,IAAK,GAHDC,GAAM,GACN1vH,GAAQ,IAEHkB,EAAI,EAAGA,EAAIxE,KAAK+mD,OAAO/mD,KAAKuuH,cAAcnnH,OAAQ5C,IAC3D,CACI,IAAK,GAAID,GAAI,EAAGA,EAAIvE,KAAK+mD,OAAO/mD,KAAKuuH,cAAcpnH,MAAO5C,IAEtDyuH,GAAO,OAMC1vH,EAAKgB,KAJTtE,KAAK+mD,OAAO/mD,KAAKuuH,cAAc33G,KAAKpS,GAAGD,GAAK,EAExCvE,KAAKwuH,SAASxuH,KAAK+mD,OAAO/mD,KAAKuuH,cAAc33G,KAAKpS,GAAGD,IAE3C,eAAiBvE,KAAKwuH,SAASxuH,KAAK+mD,OAAO/mD,KAAKuuH,cAAc33G,KAAKpS,GAAGD,IAItE,sBAKJ,2BAIlByuH,IAAO,KAGX1vH,EAAK,GAAK0vH,EACVzvH,QAAQC,IAAIC,MAAMF,QAASD,IAU/B4I,QAAS,WAELlM,KAAK8yH,kBACL9yH,KAAK4W,QACL5W,KAAKmyC,KAAO,OAMpB/P,EAAOw6C,QAAQ/4E,UAAUsB,YAAci9B,EAAOw6C,QAM9CzzE,OAAOC,eAAeg5B,EAAOw6C,QAAQ/4E,UAAW,SAE5CwF,IAAK,WAED,MAAOrJ,MAAK+mD,OAAO/mD,KAAKuuH,eAI5BjlH,IAAK,SAAUC,GAEPA,IAAUvJ,KAAKuuH,cAEfvuH,KAAK8xH,SAASvoH,MA4B1B64B,EAAOquF,aAAe,SAAUt+E,EAAMsqC,EAAS9vE,EAAOxF,EAAOC,GAEzDD,GAAS,EACTC,GAAU,EAQVpH,KAAKmyC,KAAOA,EAQZnyC,KAAK+wG,IAAMt0B,EAQXz8E,KAAK2M,MAAQA,EAQb3M,KAAKknD,MAAQu1B,EAAQ11B,OAAOp6C,GAO5B3M,KAAKqT,OAAS+uB,EAAO4b,OAAO3xC,OAAOlF,EAAOC,EAAQ,IAAI,GAOtDpH,KAAK8Q,QAAU9Q,KAAKqT,OAAOG,WAAW,MAOtCxT,KAAK0P,YAAc,GAAIzP,MAAK8+B,YAAY/+B,KAAKqT,QAO7CrT,KAAK6L,QAAU,GAAI5L,MAAKmS,QAAQpS,KAAK0P,aAOrC1P,KAAKu9E,aAAe,GAAIn7C,GAAOo7C,MAAM,EAAG,EAAG,EAAGr2E,EAAOC,EAAQ,eAAgB+qC,EAAKmC,IAAIsT,QAEtFxlB,EAAOjJ,MAAMp1B,KAAK/D,KAAMA,KAAKmyC,KAAM,EAAG,EAAGnyC,KAAK6L,QAAS7L,KAAKu9E,cAM5Dv9E,KAAKqd,KAAO,GASZrd,KAAKiD,KAAOm/B,EAAOqB,aAOnBzjC,KAAKg5E,eAAgB,EAMrBh5E,KAAKogD,aAAe,GAAIhe,GAAOn+B,MAAM,EAAG,GASxCjE,KAAKizH,gBAEDC,mBAAmB,EACnBC,cAAe,IAUnBnzH,KAAK03C,OAAQ,EAkBb13C,KAAKozH,eAEDC,iBAAkB,mBAClBC,qBAAsB,oBAEtBC,iBAAiB,EAEjBC,WAAY,GACZC,iBAAkB,kBAClBC,sBAAuB,qBAU3B1zH,KAAK2zH,cAAgB,EAQrB3zH,KAAK4zH,cAAgB,EAOrB5zH,KAAKwJ,OAAQ,EAObxJ,KAAK6zH,YAAc,EAOnB7zH,KAAK8zH,OAAQ,EAOb9zH,KAAK+zH,KAGDC,QAAS,EACTC,QAAS,EACTC,YAAa,EACbC,aAAc,EAEdz3C,UAAWD,EAAQC,UACnBC,WAAYF,EAAQE,WAKpBqI,GAAIvI,EAAQC,UACZuI,GAAIxI,EAAQE,WAGZuxC,aASJluH,KAAKo0H,SAAW,EAOhBp0H,KAAKq0H,SAAW,EAOhBr0H,KAAKyuH,aAITrsF,EAAOquF,aAAa5sH,UAAYsF,OAAOkD,OAAO+1B,EAAOjJ,MAAMt1B,WAC3Du+B,EAAOquF,aAAa5sH,UAAUsB,YAAci9B,EAAOquF,aAYnDtnH,OAAOC,eAAeg5B,EAAOquF,aAAa5sH,UAAW,aAEjDwF,IAAK,WACD,MAAOrJ,MAAKozH,cAAcC,kBAE9B/pH,IAAK,SAAUC,GACXvJ,KAAKozH,cAAcC,iBAAmB9pH,KAW9C64B,EAAOquF,aAAa5sH,UAAUu5C,WAAa,WAEvChb,EAAOjJ,MAAMt1B,UAAUu5C,WAAWr5C,KAAK/D,KAGvC,IAAI4zC,GAAS5zC,KAAKmyC,KAAKyB,MACvB5zC,MAAKg0H,QAAUpgF,EAAOrvC,EAAIvE,KAAK2zH,cAC/B3zH,KAAKi0H,QAAUrgF,EAAOpvC,EAAIxE,KAAK4zH,cAE/B5zH,KAAKiL,SAGkB,IAAnBjL,KAAKwgD,OAAO,KAEZxgD,KAAK2H,SAASpD,GAAKqvC,EAAOnxC,KAAK8B,EAAIvE,KAAKogD,aAAa77C,GAAKqvC,EAAOxtC,MAAM7B,EACvEvE,KAAK2H,SAASnD,GAAKovC,EAAOnxC,KAAK+B,EAAIxE,KAAKogD,aAAa57C,GAAKovC,EAAOxtC,MAAM5B,IAiB/E49B,EAAOquF,aAAa5sH,UAAUywH,YAAc,WAExCt0H,KAAKmyC,KAAKC,MAAM+S,UAAU,EAAG,EAAGnlD,KAAKknD,MAAM8mE,cAAehuH,KAAKknD,MAAM+mE,iBAYzE7rF,EAAOquF,aAAa5sH,UAAU0wH,MAAQ,SAAUhwH,GAO5C,MALQ,GAAJA,IAEAA,EAAI,GAGmB,IAAvBvE,KAAK2zH,cAEEpvH,EAGJvE,KAAKo0H,UAAY7vH,EAAKvE,KAAKo0H,SAAWp0H,KAAK2zH,gBAYtDvxF,EAAOquF,aAAa5sH,UAAU2wH,QAAU,SAAUjwH,GAE9C,MAA2B,KAAvBvE,KAAK2zH,cAEEpvH,EAGHvE,KAAKo0H,SAAWp0H,KAAK2zH,eAAkBpvH,EAAIvE,KAAKo0H,WAY5DhyF,EAAOquF,aAAa5sH,UAAU4wH,MAAQ,SAAUjwH,GAO5C,MALQ,GAAJA,IAEAA,EAAI,GAGmB,IAAvBxE,KAAK4zH,cAEEpvH,EAGJxE,KAAKq0H,UAAY7vH,EAAKxE,KAAKq0H,SAAWr0H,KAAK4zH,gBAYtDxxF,EAAOquF,aAAa5sH,UAAU6wH,QAAU,SAAUlwH,GAE9C,MAA2B,KAAvBxE,KAAK4zH,cAEEpvH,EAGHxE,KAAKq0H,SAAWr0H,KAAK4zH,eAAkBpvH,EAAIxE,KAAKq0H,WAY5DjyF,EAAOquF,aAAa5sH,UAAU8wH,SAAW,SAAUpwH,GAG/C,MAAOrC,MAAKmoC,MAAMrqC,KAAKu0H,MAAMhwH,GAAKvE,KAAK+zH,IAAIr3C,YAY/Ct6C,EAAOquF,aAAa5sH,UAAU+wH,SAAW,SAAUpwH,GAG/C,MAAOtC,MAAKmoC,MAAMrqC,KAAKy0H,MAAMjwH,GAAKxE,KAAK+zH,IAAIp3C,aAc/Cv6C,EAAOquF,aAAa5sH,UAAUgxH,UAAY,SAAUtwH,EAAGC,EAAG84B,GAKtD,MAHAA,GAAM/4B,EAAIvE,KAAK20H,SAASpwH,GACxB+4B,EAAM94B,EAAIxE,KAAK40H,SAASpwH,GAEjB84B,GAeX8E,EAAOquF,aAAa5sH,UAAUixH,gBAAkB,SAAUh+G,EAAMy2B,EAAUqgF,EAAUmH,GAE3ExnF,IAAYA,EAAWvtC,KAAK6zH,aACT,mBAAbjG,KAA4BA,GAAW,GACnB,mBAApBmH,KAAmCA,GAAkB,EAGhE,IAAI5G,GAAQnuH,KAAKqmH,SAASvvG,EAAKvS,EAAGuS,EAAKtS,EAAGsS,EAAK3P,MAAO2P,EAAK1P,OAAQwmH,EAAUmH,EAE7E,IAAqB,IAAjB5G,EAAM9pH,OAEN,QAOJ,KAAK,GAHDgsF,GAASv5E,EAAKw2B,kBAAkBC,GAChCC,KAEKrpC,EAAI,EAAGA,EAAIgqH,EAAM9pH,OAAQF,IAE9B,IAAK,GAAIqzF,GAAI,EAAGA,EAAInH,EAAOhsF,OAAQmzF,IACnC,CACI,GAAIiwB,GAAO0G,EAAMhqH,GACb6wH,EAAQ3kC,EAAOmH,EACnB,IAAIiwB,EAAKz7E,cAAcgpF,EAAM,GAAIA,EAAM,IACvC,CACIxnF,EAAQlpC,KAAKmjH,EACb,QAKZ,MAAOj6E,IAiBXpL,EAAOquF,aAAa5sH,UAAUwiH,SAAW,SAAU9hH,EAAGC,EAAG2C,EAAOC,EAAQwmH,EAAUmH,GAGtD,mBAAbnH,KAA4BA,GAAW,GACnB,mBAApBmH,KAAmCA,GAAkB,EAEhE,IAAIE,KAAarH,GAAYmH,EAG7BxwH,GAAIvE,KAAKu0H,MAAMhwH,GACfC,EAAIxE,KAAKy0H,MAAMjwH,EAYf,KAVA,GAAI+7B,GAAKvgC,KAAK+zH,IAAIr3C,UACdl8C,EAAKxgC,KAAK+zH,IAAIp3C,WAGdl3E,EAAKvD,KAAKmoC,MAAM9lC,EAAIvE,KAAK+zH,IAAI/uC,IAC7Bt/E,EAAKxD,KAAKmoC,MAAM7lC,EAAIxE,KAAK+zH,IAAI9uC,IAE7B1kD,EAAKr+B,KAAKqU,MAAMhS,EAAI4C,GAASnH,KAAK+zH,IAAI/uC,IAAMv/E,EAC5C+6B,EAAKt+B,KAAKqU,MAAM/R,EAAI4C,GAAUpH,KAAK+zH,IAAI9uC,IAAMv/E,EAE1C1F,KAAKyuH,SAASpqH,QAEjBrE,KAAKyuH,SAAS31G,KAGlB,KAAK,GAAIo8G,GAAKxvH,EAASA,EAAK86B,EAAV00F,EAAcA,IAE5B,IAAK,GAAIC,GAAK1vH,EAASA,EAAK86B,EAAV40F,EAAcA,IAChC,CACI,GAAI/pB,GAAMprG,KAAKknD,MAAMtwC,KAAKs+G,EACtB9pB,IAAOA,EAAI+pB,KAEPF,GAAY7pB,EAAI+pB,GAAIxH,cAAcC,EAAUmH,KAE5C/0H,KAAKyuH,SAASnqH,KAAK8mG,EAAI+pB,IAMvC,MAAOn1H,MAAKyuH,UAYhBtlH,OAAOC,eAAeg5B,EAAOquF,aAAa5sH,UAAW,QAEjDwF,IAAK,WACD,MAAOrJ,MAAK8zH,OAGhBxqH,IAAK,SAAUC,GACXvJ,KAAK8zH,MAAQvqH,EACbvJ,KAAKwJ,OAAQ,KAarB44B,EAAOquF,aAAa5sH,UAAUuxH,eAAiB,SAAUC,GAErD,GAAInH,GAAWluH,KAAK+zH,IAAI7F,QAGxB,IAAgB,IAAZmH,EACA,KAAOnH,EAAS7pH,OAASgxH,GACrBnH,EAAS5pH,KAAKmJ,OAItB,IAAI6nH,GAAWt1H,KAAK+wG,IAAIod,MAAMkH,IAAcr1H,KAAK+wG,IAAIod,MAAMkH,GAAW,EAEtE,IAAgB,MAAZC,EACJ,CACI,GAAIpG,GAAUlvH,KAAK+wG,IAAImd,SAASoH,EAChC,IAAIpG,GAAWA,EAAQqG,kBAAkBF,GAErC,MAAQnH,GAASmH,GAAanG,EAItC,MAAQhB,GAASmH,GAAa,MAUlCjzF,EAAOquF,aAAa5sH,UAAU2xH,kBAAoB,WAI9C,IADA,GAAItH,GAAWluH,KAAK+zH,IAAI7F,SACjBA,EAAS7pH,QACZ6pH,EAASp1G,OAcjBspB,EAAOquF,aAAa5sH,UAAU4xH,YAAc,SAAU3kH,EAASvM,EAAGC,GAG9D,GAAI6O,GAASvC,EAAQuC,OACjBqiH,EAAQriH,EAAOlM,MAAQjF,KAAKirB,IAAI5oB,GAChCoxH,EAAQtiH,EAAOjM,OAASlF,KAAKirB,IAAI3oB,GAGjC8M,EAAK,EACLE,EAAK,EACLi8B,EAAKlpC,EACLmpC,EAAKlpC,CAED,GAAJD,IAEA+M,GAAM/M,EACNkpC,EAAK,GAGD,EAAJjpC,IAEAgN,GAAMhN,EACNkpC,EAAK,GAGT58B,EAAQynB,OACRznB,EAAQC,yBAA2B,OACnCD,EAAQc,UAAUyB,EAAQ/B,EAAIE,EAAIkkH,EAAOC,EAAOloF,EAAIC,EAAIgoF,EAAOC,GAC/D7kH,EAAQ8nB,WAgBZwJ,EAAOquF,aAAa5sH,UAAU+xH,aAAe,SAAU5B,EAASC,EAAS9tF,EAAM6B,EAAK9B,EAAO+B,GAEvF,GAAIn3B,GAAU9Q,KAAK8Q,QAEf3J,EAAQnH,KAAKknD,MAAM//C,MACnBC,EAASpH,KAAKknD,MAAM9/C,OACpBm5B,EAAKvgC,KAAK+zH,IAAIr3C,UACdl8C,EAAKxgC,KAAK+zH,IAAIp3C,WAEduxC,EAAWluH,KAAK+zH,IAAI7F,SACpB2H,EAAYvY,GAEXt9G,MAAK8zH,QAEM5tF,GAARC,IAEAA,EAAOjkC,KAAKgT,IAAI,EAAGixB,GACnBD,EAAQhkC,KAAK23B,IAAI1yB,EAAQ,EAAG++B,IAErB+B,GAAPD,IAEAA,EAAM9lC,KAAKgT,IAAI,EAAG8yB,GAClBC,EAAS/lC,KAAK23B,IAAIzyB,EAAS,EAAG6gC,IAKtC,IAUIxiC,GAAIC,EAAInB,EAAGC,EAAGsxH,EAAMC,EAVpBC,EAAS7vF,EAAO5F,EAAMyzF,EACtBiC,EAASjuF,EAAMxH,EAAMyzF,EAGrBiC,GAAc/vF,GAAS,GAAK,IAAMh/B,GAAUA,EAC5CgvH,GAAcnuF,GAAQ,GAAK,IAAM5gC,GAAWA,CAShD,KAFA0J,EAAQ6E,UAAY3V,KAAKo2H,UAEpB5xH,EAAI2xH,EAAYJ,EAAO9tF,EAASD,EAAKtiC,EAAKuwH,EAC3CF,GAAQ,EACRvxH,IAAKuxH,IAAQrwH,GAAM86B,EACvB,CAEQh8B,GAAK4C,IAAU5C,GAAK4C,EAExB,IAAIgkG,GAAMprG,KAAKknD,MAAMtwC,KAAKpS,EAE1B,KAAKD,EAAI2xH,EAAYJ,EAAO5vF,EAAQC,EAAM1gC,EAAKuwH,EAC3CF,GAAQ,EACRvxH,IAAKuxH,IAAQrwH,GAAM86B,EACvB,CAEQh8B,GAAK4C,IAAS5C,GAAK4C,EAEvB,IAAIsgH,GAAOrc,EAAI7mG,EACf,IAAKkjH,KAAQA,EAAK96G,MAAQ,GAA1B,CAKA,GAAIA,GAAQ86G,EAAK96G,MAEbrD,EAAM4kH,EAASvhH,EACPc,UAARnE,IAEAA,EAAMtJ,KAAKo1H,eAAezoH,IAI1B86G,EAAKz/G,QAAU6tH,GAAc71H,KAAK03C,QAElC5mC,EAAQI,YAAcu2G,EAAKz/G,MAC3B6tH,EAAYpO,EAAKz/G,OAGjBsB,EAEAA,EAAIi1E,KAAKztE,EAASrL,EAAIC,EAAIiH,GAErB3M,KAAKozH,cAAcC,mBAExBviH,EAAQ6E,UAAY3V,KAAKozH,cAAcC,iBACvCviH,EAAQ2F,SAAShR,EAAIC,EAAI66B,EAAIC,IAG7BinF,EAAK/vE,OAAS13C,KAAKozH,cAAcE,uBAEjCxiH,EAAQ6E,UAAY3V,KAAKozH,cAAcE,qBACvCxiH,EAAQ2F,SAAShR,EAAIC,EAAI66B,EAAIC,QAe7C4B,EAAOquF,aAAa5sH,UAAUwyH,kBAAoB,SAAUC,EAAQC,GAEhE,GAAIvC,GAAUh0H,KAAK+zH,IAAIC,QACnBC,EAAUj0H,KAAK+zH,IAAIE,QAEnBuC,EAAUx2H,KAAKqT,OAAOlM,MACtBsvH,EAAUz2H,KAAKqT,OAAOjM,OAEtBm5B,EAAKvgC,KAAK+zH,IAAIr3C,UACdl8C,EAAKxgC,KAAK+zH,IAAIp3C,WAKdx2C,EAAO,EACPD,GAAS3F,EACTyH,EAAM,EACNC,GAAUzH,CAgCd,IA9Ba,EAAT81F,GAEAnwF,EAAOqwF,EAAUF,EACjBpwF,EAAQswF,EAAU,GAEbF,EAAS,IAGdpwF,EAAQowF,GAGC,EAATC,GAEAvuF,EAAMyuF,EAAUF,EAChBtuF,EAASwuF,EAAU,GAEdF,EAAS,IAGdtuF,EAASsuF,GAGbv2H,KAAKy1H,YAAYz1H,KAAK8Q,QAASwlH,EAAQC,GAGvCpwF,EAAOjkC,KAAKmoC,OAAOlE,EAAO6tF,GAAWzzF,GACrC2F,EAAQhkC,KAAKmoC,OAAOnE,EAAQ8tF,GAAWzzF,GACvCyH,EAAM9lC,KAAKmoC,OAAOrC,EAAMisF,GAAWzzF,GACnCyH,EAAS/lC,KAAKmoC,OAAOpC,EAASgsF,GAAWzzF,GAE7B0F,GAARC,EACJ,CAEInmC,KAAK8Q,QAAQwE,UAAY6wB,EAAO5F,EAAMyzF,EAAU,GAAI9tF,EAAQC,EAAO,GAAK5F,EAAIk2F,EAE5E,IAAIC,GAAUx0H,KAAKmoC,OAAO,EAAI4pF,GAAWzzF,GACrCm2F,EAAaz0H,KAAKmoC,OAAOosF,EAAU,EAAIxC,GAAWzzF,EACtDxgC,MAAK41H,aAAa5B,EAASC,EAAS9tF,EAAMuwF,EAASxwF,EAAOywF,GAE9D,GAAW1uF,GAAPD,EACJ,CAEIhoC,KAAK8Q,QAAQwE,UAAU,EAAK0yB,EAAMxH,EAAMyzF,EAAUuC,GAAUvuF,EAASD,EAAM,GAAKxH,EAEhF,IAAIo2F,GAAW10H,KAAKmoC,OAAO,EAAI2pF,GAAWzzF,GACtCs2F,EAAY30H,KAAKmoC,OAAOmsF,EAAU,EAAIxC,GAAWzzF,EACrDvgC,MAAK41H,aAAa5B,EAASC,EAAS2C,EAAU5uF,EAAK6uF,EAAW5uF,KAWtE7F,EAAOquF,aAAa5sH,UAAUizH,WAAa,WAGvC,GAAI9C,GAAUh0H,KAAK+zH,IAAIC,QACnBC,EAAUj0H,KAAK+zH,IAAIE,QAEnBuC,EAAUx2H,KAAKqT,OAAOlM,MACtBsvH,EAAUz2H,KAAKqT,OAAOjM,OAEtBm5B,EAAKvgC,KAAK+zH,IAAIr3C,UACdl8C,EAAKxgC,KAAK+zH,IAAIp3C,WAEdx2C,EAAOjkC,KAAKmoC,MAAM2pF,EAAUzzF,GAC5B2F,EAAQhkC,KAAKmoC,OAAOmsF,EAAU,EAAIxC,GAAWzzF,GAC7CyH,EAAM9lC,KAAKmoC,MAAM4pF,EAAUzzF,GAC3ByH,EAAS/lC,KAAKmoC,OAAOosF,EAAU,EAAIxC,GAAWzzF,EAElDxgC,MAAK8Q,QAAQwE,UAAU,EAAG,EAAGkhH,EAASC,GAEtCz2H,KAAK41H,aAAa5B,EAASC,EAAS9tF,EAAM6B,EAAK9B,EAAO+B,IAU1D7F,EAAOquF,aAAa5sH,UAAUoH,OAAS,WAEnC,GAAI8rH,IAAY,CAEhB,IAAK/2H,KAAKiI,QAAV,EAKIjI,KAAKwJ,OAASxJ,KAAKknD,MAAM19C,SAEzBxJ,KAAKknD,MAAM19C,OAAQ,EACnButH,GAAY,EAGhB,IAAI7C,GAAcl0H,KAAKqT,OAAOlM,MAC1BgtH,EAAen0H,KAAKqT,OAAOjM,OAG3B4sH,EAA0B,EAAhBh0H,KAAKo0H,SACfH,EAA0B,EAAhBj0H,KAAKq0H,SAEf2C,EAAKh3H,KAAK+zH,IACVuC,EAASU,EAAGhD,QAAUA,EACtBuC,EAASS,EAAG/C,QAAUA,CAE1B,IAAK8C,GACU,IAAXT,GAA2B,IAAXC,GAChBS,EAAG9C,cAAgBA,GAAe8C,EAAG7C,eAAiBA,EA+C1D,MAzCA6C,GAAGhD,QAAUA,EACbgD,EAAG/C,QAAUA,GAET+C,EAAG9C,cAAgBA,GAAe8C,EAAG7C,eAAiBA,KAGtD6C,EAAG9C,YAAcA,EACjB8C,EAAG7C,aAAeA,GAGlBn0H,KAAK03C,QAEL13C,KAAK8Q,QAAQI,YAAclR,KAAKozH,cAAcI,WAC1CxzH,KAAKozH,cAAcG,kBAEnBwD,GAAY,KAIfA,GACD/2H,KAAKizH,eAAeC,mBACnBhxH,KAAKirB,IAAImpG,GAAUp0H,KAAKirB,IAAIopG,GAAWr0H,KAAK23B,IAAIq6F,EAAaC,GAE9Dn0H,KAAKq2H,kBAAkBC,EAAQC,GAK/Bv2H,KAAK82H,aAGL92H,KAAK03C,QAEL13C,KAAK8Q,QAAQI,YAAc,EAC3BlR,KAAKi3H,eAGTj3H,KAAK0P,YAAYlG,QAEjBxJ,KAAKwJ,OAAQ,GAEN,IAYX44B,EAAOquF,aAAa5sH,UAAUozH,YAAc,WAExC,GAuBIxxH,GAAIC,EAAInB,EAAGC,EAAGsxH,EAAMC,EAvBpB/B,EAAUh0H,KAAK+zH,IAAIC,QACnBC,EAAUj0H,KAAK+zH,IAAIE,QAEnBnjH,EAAU9Q,KAAK8Q,QACf0lH,EAAUx2H,KAAKqT,OAAOlM,MACtBsvH,EAAUz2H,KAAKqT,OAAOjM,OAEtBD,EAAQnH,KAAKknD,MAAM//C,MACnBC,EAASpH,KAAKknD,MAAM9/C,OACpBm5B,EAAKvgC,KAAK+zH,IAAIr3C,UACdl8C,EAAKxgC,KAAK+zH,IAAIp3C,WAEdx2C,EAAOjkC,KAAKmoC,MAAM2pF,EAAUzzF,GAC5B2F,EAAQhkC,KAAKmoC,OAAOmsF,EAAU,EAAIxC,GAAWzzF,GAC7CyH,EAAM9lC,KAAKmoC,MAAM4pF,EAAUzzF,GAC3ByH,EAAS/lC,KAAKmoC,OAAOosF,EAAU,EAAIxC,GAAWzzF,GAE9Cw1F,EAAS7vF,EAAO5F,EAAMyzF,EACtBiC,EAASjuF,EAAMxH,EAAMyzF,EAErBiC,GAAc/vF,GAAS,GAAK,IAAMh/B,GAAUA,EAC5CgvH,GAAcnuF,GAAQ,GAAK,IAAM5gC,GAAWA,CAMhD,KAFA0J,EAAQyE,YAAcvV,KAAKozH,cAAcK,iBAEpCjvH,EAAI2xH,EAAYJ,EAAO9tF,EAASD,EAAKtiC,EAAKuwH,EAC3CF,GAAQ,EACRvxH,IAAKuxH,IAAQrwH,GAAM86B,EACvB,CAEQh8B,GAAK4C,IAAU5C,GAAK4C,EAExB,IAAIgkG,GAAMprG,KAAKknD,MAAMtwC,KAAKpS,EAE1B,KAAKD,EAAI2xH,EAAYJ,EAAO5vF,EAAQC,EAAM1gC,EAAKuwH,EAC3CF,GAAQ,EACRvxH,IAAKuxH,IAAQrwH,GAAM86B,EACvB,CAEQh8B,GAAK4C,IAAS5C,GAAK4C,EAEvB,IAAIsgH,GAAOrc,EAAI7mG,IACVkjH,GAAQA,EAAK96G,MAAQ,IAAM86G,EAAKmG,WAKjC5tH,KAAKozH,cAAcM,wBAEnB5iH,EAAQ6E,UAAY3V,KAAKozH,cAAcM,sBACvC5iH,EAAQ2F,SAAShR,EAAIC,EAAI1F,KAAK+zH,IAAI/uC,GAAIhlF,KAAK+zH,IAAI9uC,KAG/CjlF,KAAKozH,cAAcK,mBAEnB3iH,EAAQqpB,YAEJstF,EAAKK,UAELh3G,EAAQspB,OAAO30B,EAAIC,GACnBoL,EAAQupB,OAAO50B,EAAKzF,KAAK+zH,IAAI/uC,GAAIt/E,IAGjC+hH,EAAKM,aAELj3G,EAAQspB,OAAO30B,EAAIC,EAAK1F,KAAK+zH,IAAI9uC,IACjCn0E,EAAQupB,OAAO50B,EAAKzF,KAAK+zH,IAAI/uC,GAAIt/E,EAAK1F,KAAK+zH,IAAI9uC,KAG/CwiC,EAAKG,WAEL92G,EAAQspB,OAAO30B,EAAIC,GACnBoL,EAAQupB,OAAO50B,EAAIC,EAAK1F,KAAK+zH,IAAI9uC,KAGjCwiC,EAAKI,YAEL/2G,EAAQspB,OAAO30B,EAAKzF,KAAK+zH,IAAI/uC,GAAIt/E,GACjCoL,EAAQupB,OAAO50B,EAAKzF,KAAK+zH,IAAI/uC,GAAIt/E,EAAK1F,KAAK+zH,IAAI9uC,KAGnDn0E,EAAQkD,cAgBxB7K,OAAOC,eAAeg5B,EAAOquF,aAAa5sH,UAAW,WAEjDwF,IAAK,WACD,MAAOrJ,MAAKo0H,UAGhB9qH,IAAK,SAAUC,GACXvJ,KAAKo0H,SAAW7qH,KAYxBJ,OAAOC,eAAeg5B,EAAOquF,aAAa5sH,UAAW,WAEjDwF,IAAK,WACD,MAAOrJ,MAAKq0H,UAGhB/qH,IAAK,SAAUC,GACXvJ,KAAKq0H,SAAW9qH,KAYxBJ,OAAOC,eAAeg5B,EAAOquF,aAAa5sH,UAAW,kBAEjDwF,IAAK,WACD,MAAOrJ,MAAK+zH,IAAI/uC,IAGpB17E,IAAK,SAAUC,GACXvJ,KAAK+zH,IAAI/uC,GAAa,EAARz7E,EACdvJ,KAAKwJ,OAAQ,KAYrBL,OAAOC,eAAeg5B,EAAOquF,aAAa5sH,UAAW,mBAEjDwF,IAAK,WACD,MAAOrJ,MAAK+zH,IAAI9uC,IAGpB37E,IAAK,SAAUC,GACXvJ,KAAK+zH,IAAI9uC,GAAa,EAAR17E,EACdvJ,KAAKwJ,OAAQ,KAgBrB44B,EAAO0rF,eAcH9iF,MAAO,SAAUmH,EAAMxvB,EAAK+5D,EAAWC,EAAYx1E,EAAOC,GAOtD,GALyB,mBAAds1E,KAA6BA,EAAY,IAC1B,mBAAfC,KAA8BA,EAAa,IACjC,mBAAVx1E,KAAyBA,EAAQ,IACtB,mBAAXC,KAA0BA,EAAS,IAE3B,mBAARub,GAEP,MAAO3iB,MAAKk3H,cAGhB,IAAY,OAARv0G,EAEA,MAAO3iB,MAAKk3H,aAAax6C,EAAWC,EAAYx1E,EAAOC,EAG3D,IAAI2pG,GAAM5+D,EAAK0B,MAAMi9D,eAAenuF,EAEpC,IAAIouF,EACJ,CACI,GAAIA,EAAI7sF,SAAWke,EAAOw6C,QAAQq4B,IAE9B,MAAOj1G,MAAKm3H,SAASx0G,EAAKouF,EAAIn6F,KAAM8lE,EAAWC,EAE9C,KAAKo0B,EAAI7sF,QAAU6sF,EAAI7sF,SAAWke,EAAOw6C,QAAQs4B,WAElD,MAAOl1G,MAAKo3H,eAAermB,EAAIn6F,UAKnCrT,SAAQo0C,KAAK,0DAA4Dh1B,IAcjFw0G,SAAU,SAAUx0G,EAAK/L,EAAM8lE,EAAWC,GAEtC,GAAIo0B,GAAM/wG,KAAKk3H,cAGftgH,GAAOA,EAAKrF,MAOZ,KAAK,GALDo2B,MACAkoF,EAAOj5G,EAAKjC,MAAM,MAClBvN,EAASyoH,EAAKxrH,OACd8C,EAAQ,EAEH3C,EAAI,EAAGA,EAAIqrH,EAAKxrH,OAAQG,IACjC,CACImjC,EAAOnjC,KAIP,KAAK,GAFD6mG,GAASwkB,EAAKrrH,GAAGmQ,MAAM,KAElBpQ,EAAI,EAAGA,EAAI8mG,EAAOhnG,OAAQE,IAE/BojC,EAAOnjC,GAAGD,GAAK,GAAI69B,GAAOkrF,KAAKvc,EAAIhqD,OAAO,GAAInvC,SAASyzF,EAAO9mG,GAAI,IAAKA,EAAGC,EAAGk4E,EAAWC,EAG9E,KAAVx1E,IAEAA,EAAQkkG,EAAOhnG,QAmBvB,MAfA0sG,GAAI7sF,OAASke,EAAOw6C,QAAQq4B,IAC5BlE,EAAI1zF,KAAOsF,EACXouF,EAAI5pG,MAAQA,EACZ4pG,EAAI3pG,OAASA,EACb2pG,EAAIr0B,UAAYA,EAChBq0B,EAAIp0B,WAAaA,EACjBo0B,EAAIid,cAAgB7mH,EAAQu1E,EAC5Bq0B,EAAIkd,eAAiB7mH,EAASu1E,EAE9Bo0B,EAAIhqD,OAAO,GAAG5/C,MAAQA,EACtB4pG,EAAIhqD,OAAO,GAAG3/C,OAASA,EACvB2pG,EAAIhqD,OAAO,GAAGinE,cAAgBjd,EAAIid,cAClCjd,EAAIhqD,OAAO,GAAGknE,eAAiBld,EAAIkd,eACnCld,EAAIhqD,OAAO,GAAGnwC,KAAO+wB,EAEdopE,GAUXmmB,aAAc,SAAUx6C,EAAWC,EAAYx1E,EAAOC,GAElD,GAAI2pG,KAEJA,GAAI5pG,MAAQ,EACZ4pG,EAAI3pG,OAAS,EACb2pG,EAAIr0B,UAAY,EAChBq0B,EAAIp0B,WAAa,EAEQ,mBAAdD,IAA2C,OAAdA,IAAsBq0B,EAAIr0B,UAAYA,GACpD,mBAAfC,IAA6C,OAAfA,IAAuBo0B,EAAIp0B,WAAaA,GAC5D,mBAAVx1E,IAAmC,OAAVA,IAAkB4pG,EAAI5pG,MAAQA,GAC5C,mBAAXC,IAAqC,OAAXA,IAAmB2pG,EAAI3pG,OAASA,GAErE2pG,EAAItiD,YAAc,aAClBsiD,EAAIgd,QAAU,IACdhd,EAAI56F,cACJ46F,EAAIid,cAAgB,EACpBjd,EAAIkd,eAAiB,CAErB,IAAIlnE,MAEAG,GAEA7pC,KAAM,QACN9Y,EAAG,EACHC,EAAG,EACH2C,MAAO,EACPC,OAAQ,EACR4mH,cAAe,EACfC,eAAgB,EAChBjmH,MAAO,EACPC,SAAS,EACTkO,cACAu6G,WACApjD,aACAqjD,UACA/5G,QAeJ,OATAmwC,GAAOziD,KAAK4iD,GAEZ6pD,EAAIhqD,OAASA,EACbgqD,EAAIud,UACJvd,EAAIxU,WACJwU,EAAIsd,aACJtd,EAAImd,YACJnd,EAAIod,SAEGpd,GAUXqmB,eAAgB,SAAU7rB,GAkKtB,QAASznG,GAAOkY,EAAKq7G,GACjB,GAAIC,KACJ,KAAK,GAAItoD,KAAKqoD,GAAQ,CAClB,GAAI10G,GAAM00G,EAAOroD,EACjBsoD,GAAO30G,GAAO3G,EAAI2G,GAEtB,MAAO20G,GAtKX,GAAyB,eAArB/rB,EAAK98C,YAGL,MADAlrD,SAAQo0C,KAAK,mGACN,IAIX,IAAIo5D,KAEJA,GAAI5pG,MAAQokG,EAAKpkG,MACjB4pG,EAAI3pG,OAASmkG,EAAKnkG,OAClB2pG,EAAIr0B,UAAY6uB,EAAKgsB,UACrBxmB,EAAIp0B,WAAa4uB,EAAKisB,WACtBzmB,EAAItiD,YAAc88C,EAAK98C,YACvBsiD,EAAI7sF,OAASke,EAAOw6C,QAAQs4B,WAC5BnE,EAAIgd,QAAUxiB,EAAKwiB,QACnBhd,EAAI56F,WAAao1F,EAAKp1F,WACtB46F,EAAIid,cAAgBjd,EAAI5pG,MAAQ4pG,EAAIr0B,UACpCq0B,EAAIkd,eAAiBld,EAAI3pG,OAAS2pG,EAAIp0B,UAKtC,KAAK,GAFD51B,MAEK5iD,EAAI,EAAGA,EAAIonG,EAAKxkD,OAAO1iD,OAAQF,IAEpC,GAA4B,cAAxBonG,EAAKxkD,OAAO5iD,GAAGlB,KAAnB,CAKA,GAAIikD,IAEA7pC,KAAMkuF,EAAKxkD,OAAO5iD,GAAGkZ,KACrB9Y,EAAGgnG,EAAKxkD,OAAO5iD,GAAGI,EAClBC,EAAG+mG,EAAKxkD,OAAO5iD,GAAGK,EAClB2C,MAAOokG,EAAKxkD,OAAO5iD,GAAGgD,MACtBC,OAAQmkG,EAAKxkD,OAAO5iD,GAAGiD,OACvB4mH,cAAeziB,EAAKxkD,OAAO5iD,GAAGgD,MAAQokG,EAAKgsB,UAC3CtJ,eAAgB1iB,EAAKxkD,OAAO5iD,GAAGiD,OAASmkG,EAAKisB,WAC7CxvH,MAAOujG,EAAKxkD,OAAO5iD,GAAGszH,QACtBxvH,QAASsjG,EAAKxkD,OAAO5iD,GAAG8D,QACxBkO,cACAu6G,WACApjD,aACAqjD,UAIAplB,GAAKxkD,OAAO5iD,GAAGgS,aAEf+wC,EAAM/wC,WAAao1F,EAAKxkD,OAAO5iD,GAAGgS,WAatC,KAAK,GAVD5R,GAAI,EACJ6mG,KACAzjE,KAQK6vD,EAAI,EAAGl8D,EAAMiwE,EAAKxkD,OAAO5iD,GAAGyS,KAAKvS,OAAYi3B,EAAJk8D,EAASA,IAKnD4T,EAAI9mG,KAFJinG,EAAKxkD,OAAO5iD,GAAGyS,KAAK4gF,GAAK,EAEhB,GAAIp1D,GAAOkrF,KAAKpmE,EAAOqkD,EAAKxkD,OAAO5iD,GAAGyS,KAAK4gF,GAAIjzF,EAAGojC,EAAOtjC,OAAQknG,EAAKgsB,UAAWhsB,EAAKisB,YAItF,GAAIp1F,GAAOkrF,KAAKpmE,EAAO,GAAI3iD,EAAGojC,EAAOtjC,OAAQknG,EAAKgsB,UAAWhsB,EAAKisB,aAG/EjzH,IAEIA,IAAMgnG,EAAKxkD,OAAO5iD,GAAGgD,QAErBwgC,EAAOrjC,KAAK8mG,GACZ7mG,EAAI,EACJ6mG,KAIRlkD,GAAMtwC,KAAO+wB,EAEbof,EAAOziD,KAAK4iD,GAIhB6pD,EAAIhqD,OAASA,CAKb,KAAK,GAFDunE,MAEKnqH,EAAI,EAAGA,EAAIonG,EAAKxkD,OAAO1iD,OAAQF,IAEpC,GAA4B,eAAxBonG,EAAKxkD,OAAO5iD,GAAGlB,KAAnB,CAKA,GAAI28B,IAEAviB,KAAMkuF,EAAKxkD,OAAO5iD,GAAGkZ,KACrBuiB,MAAO2rE,EAAKxkD,OAAO5iD,GAAGy7B,MACtBr7B,EAAGgnG,EAAKxkD,OAAO5iD,GAAGI,EAClBC,EAAG+mG,EAAKxkD,OAAO5iD,GAAGK,EAClBwD,MAAOujG,EAAKxkD,OAAO5iD,GAAGszH,QACtBxvH,QAASsjG,EAAKxkD,OAAO5iD,GAAG8D,QACxBkO,cAIAo1F,GAAKxkD,OAAO5iD,GAAGgS,aAEfypB,EAAMzpB,WAAao1F,EAAKxkD,OAAO5iD,GAAGgS,YAGtCm4G,EAAOhqH,KAAKs7B,GAIhBmxE,EAAIud,OAASA,CAKb,KAAK,GAFDJ,MAEK/pH,EAAI,EAAGA,EAAIonG,EAAK2iB,SAAS7pH,OAAQF,IAC1C,CAEI,GAAImF,GAAMiiG,EAAK2iB,SAAS/pH,GACpBqrH,EAAS,GAAIptF,GAAOqtF,QAAQnmH,EAAI+T,KAAM/T,EAAIouH,SAAUpuH,EAAIiuH,UAAWjuH,EAAIkuH,WAAYluH,EAAIggD,OAAQhgD,EAAI4hG,QAAS5hG,EAAI6M,WAEhH7M,GAAIquH,iBAEJnI,EAAOoI,eAAiBtuH,EAAIquH,gBAGhCnI,EAAOK,KAAO3tH,KAAKwlC,OAAOp+B,EAAIuuH,YAAcvuH,EAAIggD,SAAWhgD,EAAIkuH,WAAaluH,EAAI4hG,UAChFskB,EAAOI,QAAU1tH,KAAKwlC,OAAOp+B,EAAIwuH,WAAaxuH,EAAIggD,SAAWhgD,EAAIiuH,UAAYjuH,EAAI4hG,UACjFskB,EAAOhyF,MAAQgyF,EAAOK,KAAOL,EAAOI,QAEhCJ,EAAOK,KAAO,IAAM,GAAKL,EAAOI,QAAU,IAAM,EAEhDrsH,QAAQo0C,KAAK,0IAIbu2E,EAAS5pH,KAAKkrH,GAItBze,EAAImd,SAAWA,CAef,KAAK,GAZD3xB,MACA8xB,KAWKlqH,EAAI,EAAGA,EAAIonG,EAAKxkD,OAAO1iD,OAAQF,IAEpC,GAA4B,gBAAxBonG,EAAKxkD,OAAO5iD,GAAGlB,KAAnB,CAKAs5F,EAAQgP,EAAKxkD,OAAO5iD,GAAGkZ,SACvBgxG,EAAU9iB,EAAKxkD,OAAO5iD,GAAGkZ,QAEzB,KAAK,GAAIyC,GAAI,EAAGwb,EAAMiwE,EAAKxkD,OAAO5iD,GAAGo4F,QAAQl4F,OAAYi3B,EAAJxb,EAASA,IAG1D,GAAIyrF,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGuvG,IAC9B,CACI,GAAIl9D,IAEAk9D,IAAK9jB,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGuvG,IAC/BhyG,KAAMkuF,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGzC,KAChC9Y,EAAGgnG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGvb,EAC7BC,EAAG+mG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGtb,EAC7ByD,QAASsjG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAG7X,QACnCkO,WAAYo1F,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAG3J,WAI1ComF,GAAQgP,EAAKxkD,OAAO5iD,GAAGkZ,MAAM/Y,KAAK6tD,OAEjC,IAAIo5C,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGi4G,SACnC,CACI,GAAI5lE,IAEA90C,KAAMkuF,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGzC,KAChCpa,KAAMsoG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAG7c,KAChCsB,EAAGgnG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGvb,EAC7BC,EAAG+mG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGtb,EAC7B2C,MAAOokG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAG3Y,MACjCC,OAAQmkG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAG1Y,OAClCa,QAASsjG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAG7X,QACnCkO,WAAYo1F,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAG3J,WAI1Cg8C,GAAO4lE,WAGP,KAAK,GAAI7zH,GAAI,EAAGA,EAAIqnG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGi4G,SAAS1zH,OAAQH,IAE3DiuD,EAAO4lE,SAASzzH,MAAOinG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGi4G,SAAS7zH,GAAGK,EAAGgnG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGi4G,SAAS7zH,GAAGM,GAG1G6pH,GAAU9iB,EAAKxkD,OAAO5iD,GAAGkZ,MAAM/Y,KAAK6tD,GACpCoqC,EAAQgP,EAAKxkD,OAAO5iD,GAAGkZ,MAAM/Y,KAAK6tD,OAGjC,IAAIo5C,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGk4G,QACnC,CACI,GAAI7lE,GAASruD,EAAMynG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,IACtB,OAAQ,OAAQ,IAAK,IAAK,UAAW,cAGzDqyC,GAAO6lE,UACP,KAAK,GAAI9zH,GAAI,EAAGA,EAAIqnG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGk4G,QAAQ3zH,OAAQH,IAE1DiuD,EAAO6lE,QAAQ1zH,MAAOinG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGk4G,QAAQ9zH,GAAGK,EAAGgnG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGk4G,QAAQ9zH,GAAGM,GAEvG+3F,GAAQgP,EAAKxkD,OAAO5iD,GAAGkZ,MAAM/Y,KAAK6tD,OAIjC,IAAIo5C,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,GAAGm4G,QACnC,CACI,GAAI9lE,GAASruD,EAAMynG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,IACtB,OAAQ,OAAQ,UAAW,IAAK,IAAK,QAAS,SAAU,UAAW,cACvFy8E,GAAQgP,EAAKxkD,OAAO5iD,GAAGkZ,MAAM/Y,KAAK6tD,OAItC,CACI,GAAIA,GAASruD,EAAMynG,EAAKxkD,OAAO5iD,GAAGo4F,QAAQz8E,IACtB,OAAQ,OAAQ,IAAK,IAAK,QAAS,SAAU,UAAW,cAC5EqyC,GAAOusD,WAAY,EACnBniB,EAAQgP,EAAKxkD,OAAO5iD,GAAGkZ,MAAM/Y,KAAK6tD,IAK9C4+C,EAAIxU,QAAUA,EACdwU,EAAIsd,UAAYA,EAEhBtd,EAAIod,QAGJ,KAAK,GAAIhqH,GAAI,EAAGA,EAAI4sG,EAAImd,SAAS7pH,OAAQF,IAWrC,IAAK,GATDmF,GAAMynG,EAAImd,SAAS/pH,GAEnBI,EAAI+E,EAAI6lH,WACR3qH,EAAI8E,EAAI6lH,WAERh+F,EAAQ,EACRu+F,EAAS,EACTC,EAAS,EAEJn4B,EAAIluF,EAAIouH,SAAUlgC,EAAIluF,EAAIouH,SAAWpuH,EAAIk0B,QAG9CuzE,EAAIod,MAAM32B,IAAMjzF,EAAGC,EAAGL,GAEtBI,GAAK+E,EAAIozE,UAAYpzE,EAAI8lH,YAEzBj+F,IAEIA,IAAU7nB,EAAIk0B,SAKlBkyF,IAEIA,IAAWpmH,EAAIsmH,UAEfrrH,EAAI+E,EAAI6lH,WACR3qH,GAAK8E,EAAIqzE,WAAarzE,EAAI8lH,YAE1BM,EAAS,EACTC,IAEIA,IAAWrmH,EAAIumH,OAxB8Br4B,KAmC7D,GAAIrzF,GAAEU,EAAEmqE,EACJ9nB,EAAOugE,EAAMyQ,EAAK5uH,CAGtB,KAAKnF,EAAI,EAAGA,EAAI4sG,EAAIhqD,OAAO1iD,OAAQF,IAK/B,IAHA+iD,EAAQ6pD,EAAIhqD,OAAO5iD,GAGdU,EAAI,EAAGA,EAAIqiD,EAAMtwC,KAAKvS,OAAQQ,IAK/B,IAHAumG,EAAMlkD,EAAMtwC,KAAK/R,GAGZmqE,EAAI,EAAGA,EAAIo8B,EAAI/mG,OAAQ2qE,IAExBy4C,EAAOrc,EAAIp8B,GAERy4C,EAAK96G,MAAQ,IAGhBurH,EAAMnnB,EAAIod,MAAM1G,EAAK96G,OAAO,GAC5BrD,EAAMynG,EAAImd,SAASgK,GAGhB5uH,EAAIsuH,gBAAkBtuH,EAAIsuH,eAAenQ,EAAK96G,MAAQrD,EAAIouH,YACzDjQ,EAAKtxG,WAAa7M,EAAIsuH,eAAenQ,EAAK96G,MAAQrD,EAAIouH,WAOtE,OAAO3mB,KA2Bf3uE,EAAOqtF,QAAU,SAAUpyG,EAAMq6G,EAAUvwH,EAAOC,EAAQkiD,EAAQ4hD,EAAS/0F,IAElD,mBAAVhP,IAAkC,GAATA,KAAcA,EAAQ,KACpC,mBAAXC,IAAoC,GAAVA,KAAeA,EAAS,IACvC,mBAAXkiD,KAA0BA,EAAS,GACvB,mBAAZ4hD,KAA2BA,EAAU,GAMhDlrG,KAAKqd,KAAOA,EAOZrd,KAAK03H,SAAsB,EAAXA,EAOhB13H,KAAK08E,UAAoB,EAARv1E,EAOjBnH,KAAK28E,WAAsB,EAATv1E,EASlBpH,KAAKmvH,WAAsB,EAAT7lE,EAOlBtpD,KAAKovH,YAAwB,EAAVlkB,EAMnBlrG,KAAKmW,WAAaA,MAQlBnW,KAAK4/B,MAAQ,KAQb5/B,KAAK6vH,KAAO,EAQZ7vH,KAAK4vH,QAAU,EAQf5vH,KAAKw9B,MAAQ,EAQbx9B,KAAKm4H;EAIT/1F,EAAOqtF,QAAQ5rH,WAYX06E,KAAM,SAAUztE,EAASvM,EAAGC,EAAGmI,GAG3B,GAAIyrH,GAAczrH,EAAQ3M,KAAK03H,UAAa,CAExCU,IAAc,GAAMA,EAAa,EAAKp4H,KAAKm4H,WAAW9zH,QAEtDyM,EAAQc,UACJ5R,KAAK4/B,MACL5/B,KAAKm4H,WAAWC,GAChBp4H,KAAKm4H,WAAWC,EAAa,GAC7Bp4H,KAAK08E,UACL18E,KAAK28E,WACLp4E,EACAC,EACAxE,KAAK08E,UACL18E,KAAK28E,aAajB44C,kBAAmB,SAAUF,GAGzB,MACIA,IAAar1H,KAAK03H,UAClBrC,EAAar1H,KAAK03H,SAAW13H,KAAKw9B,OAY1C+xF,SAAU,SAAU3vF,GAEhB5/B,KAAK4/B,MAAQA,EACb5/B,KAAKq4H,kBAYTC,WAAY,SAAUhvE,EAAQ4hD,GAE1BlrG,KAAKmvH,WAAsB,EAAT7lE,EAClBtpD,KAAKovH,YAAwB,EAAVlkB,EAEnBlrG,KAAKq4H,kBAUTA,eAAgB,WAEZ,GAAIz4F,GAAQ5/B,KAAK4/B,KACjB5/B,MAAK6vH,KAAO3tH,KAAKwlC,OAAO9H,EAAMx4B,OAASpH,KAAKmvH,aAAenvH,KAAK28E,WAAa38E,KAAKovH,cAClFpvH,KAAK4vH,QAAU1tH,KAAKwlC,OAAO9H,EAAMz4B,MAAQnH,KAAKmvH,aAAenvH,KAAK08E,UAAY18E,KAAKovH,cACnFpvH,KAAKw9B,MAAQx9B,KAAK6vH,KAAO7vH,KAAK4vH,QAE9B5vH,KAAKm4H,WAAW9zH,OAAS,CAKzB,KAAK,GAHDoB,GAAKzF,KAAKmvH,WACVzpH,EAAK1F,KAAKmvH,WAEL3qH,EAAI,EAAGA,EAAIxE,KAAK6vH,KAAMrrH,IAC/B,CACI,IAAK,GAAID,GAAI,EAAGA,EAAIvE,KAAK4vH,QAASrrH,IAE9BvE,KAAKm4H,WAAW7zH,KAAKmB,GACrBzF,KAAKm4H,WAAW7zH,KAAKoB,GACrBD,GAAMzF,KAAK08E,UAAY18E,KAAKovH,WAGhC3pH,GAAKzF,KAAKmvH,WACVzpH,GAAM1F,KAAK28E,WAAa38E,KAAKovH,eAOzChtF,EAAOqtF,QAAQ5rH,UAAUsB,YAAci9B,EAAOqtF,QAQnB,mBAAZ/tF,UACe,mBAAXC,SAA0BA,OAAOD,UACxCA,QAAUC,OAAOD,QAAUU,GAE/BV,QAAQU,OAASA,GACQ,mBAAXR,SAA0BA,OAAOC,IAC/CD,OAAO,SAAU,WAAc,MAAO7hC,GAAKqiC,OAASA,MAEpDriC,EAAKqiC,OAASA,GAEnBr+B,KAAK/D,OA6BP,SAAS2b,GAAG,gBAAiB+lB,SAAQC,OAAOD,QAAQ/lB,IAAI,kBAAmBimB,SAAQA,OAAOC,IAAID,OAAO,KAAM,WAAc,MAAO5hC,MAAK2uC,GAAKhzB,QAAW,mBAAoBjY,QAAOA,OAAOirC,GAAGhzB,IAAI,mBAAoB3B,QAAO+C,KAAK4xB,GAAGhzB,IAAI,mBAAoBoB,QAAOA,KAAK4xB,GAAGhzB,MAAM,WAAqC,MAAO,SAAUA,GAAE67E,EAAE15E,EAAE6L,GAAG,QAAS6gB,GAAE3D,EAAEhnB,GAAG,IAAI/B,EAAE+oB,GAAG,CAAC,IAAI2wD,EAAE3wD,GAAG,CAAC,GAAIxhC,GAAkB,kBAAT8wF,UAAqBA,OAAQ,KAAIt2E,GAAGxa,EAAE,MAAOA,GAAEwhC,GAAE,EAAI,IAAG1iC,EAAE,MAAOA,GAAE0iC,GAAE,EAAI,MAAM,IAAI/5B,OAAM,uBAAuB+5B,EAAE,KAAK,GAAIlB,GAAE7nB,EAAE+oB,IAAInF,WAAY81D,GAAE3wD,GAAG,GAAG9iC,KAAK4hC,EAAEjE,QAAQ,SAAS/lB,GAAG,GAAImC,GAAE05E,EAAE3wD,GAAG,GAAGlrB,EAAG,OAAO6uB,GAAE1sB,EAAEA,EAAEnC,IAAIgqB,EAAEA,EAAEjE,QAAQ/lB,EAAE67E,EAAE15E,EAAE6L,GAAG,MAAO7L,GAAE+oB,GAAGnF,QAAkD,IAAI,GAA1Cv9B,GAAkB,kBAATgyF,UAAqBA,QAAgBtvD,EAAE,EAAEA,EAAEld,EAAEtlB,OAAOwiC,IAAI2D,EAAE7gB,EAAEkd,GAAI,OAAO2D,KAAK+tF,GAAG,SAASpiC,EAAQx0D,GACzuBw0D,EAAQ,QAAUx6E,GAAE67E,EAAE15E,EAAE6L,GAAG,QAAS6gB,GAAE3D,EAAEhnB,GAAG,IAAI/B,EAAE+oB,GAAG,CAAC,IAAI2wD,EAAE3wD,GAAG,CAAC,GAAIxhC,GAAkB,kBAAT8wF,IAAqBA,CAAQ,KAAIt2E,GAAGxa,EAAE,MAAOA,GAAEwhC,GAAE,EAAI,IAAG1iC,EAAE,MAAOA,GAAE0iC,GAAE,EAAI,MAAM,IAAI/5B,OAAM,uBAAuB+5B,EAAE,KAAK,GAAIlB,GAAE7nB,EAAE+oB,IAAInF,WAAY81D,GAAE3wD,GAAG,GAAG9iC,KAAK4hC,EAAEjE,QAAQ,SAAS/lB,GAAG,GAAImC,GAAE05E,EAAE3wD,GAAG,GAAGlrB,EAAG,OAAO6uB,GAAE1sB,EAAEA,EAAEnC,IAAIgqB,EAAEA,EAAEjE,QAAQ/lB,EAAE67E,EAAE15E,EAAE6L,GAAG,MAAO7L,GAAE+oB,GAAGnF,QAAkD,IAAI,GAA1Cv9B,GAAkB,kBAATgyF,IAAqBA,EAAgBtvD,EAAE,EAAEA,EAAEld,EAAEtlB,OAAOwiC,IAAI2D,EAAE7gB,EAAEkd,GAAI,OAAO2D,KAAKguF,QAAU,SAASriC,EAAQx0D,EAAOD,GA+Bpc,QAAS+2F,GAAQC,EAASC,GACxB,GAAI11H,SAAcy1H,EAKlB,IAAiB,WAAbC,GAAkC,WAAT11H,EAE3B,IADAy1H,EAAUE,GAAWF,GACdA,EAAQr0H,OAAS,IAAM,GAC5Bq0H,GAAoB,GAKxB,IAAIr0H,EACJ,IAAa,WAATpB,EACFoB,EAASw0H,GAAOH,OACb,IAAa,WAATz1H,EACPoB,EAASo0H,EAAOK,WAAWJ,EAASC,OACjC,CAAA,GAAa,WAAT11H,EAGP,KAAM,IAAI6J,OAAM,wDAFhBzI,GAASw0H,GAAOH,EAAQr0H,QAI1B,GAAI00H,GAAMC,GAAQ,GAAIC,IAAY50H,GAClC,IAAIo0H,EAAOS,SAASR,GAElBK,EAAIzvH,IAAIovH,OACH,IAAIS,GAAWT,GAEpB,IAAK,GAAIv0H,GAAI,EAAOE,EAAJF,EAAYA,IAExB40H,EAAI50H,GADFs0H,EAAOS,SAASR,GACTA,EAAQU,UAAUj1H,GAElBu0H,EAAQv0H,OAEH,WAATlB,GACT81H,EAAIM,MAAMX,EAAS,EAAGC,EAGxB,OAAOI,GAuFT,QAASO,GAAWP,EAAKQ,EAAQ7yG,EAAQriB,GACvCqiB,EAAS2lB,OAAO3lB,IAAW,CAC3B,IAAI8yG,GAAYT,EAAI10H,OAASqiB,CACxBriB,IAGHA,EAASgoC,OAAOhoC,GACZA,EAASm1H,IACXn1H,EAASm1H,IAJXn1H,EAASm1H,CASX,IAAIC,GAASF,EAAOl1H,MACpB,IAAIo1H,EAAS,IAAM,EACjB,KAAM,IAAI3sH,OAAM,qBAEdzI,GAASo1H,EAAS,IACpBp1H,EAASo1H,EAAS,EAEpB,KAAK,GAAIt1H,GAAI,EAAOE,EAAJF,EAAYA,IAAK,CAC/B,GAAIu1H,GAAO9hH,SAAS2hH,EAAO3/G,OAAW,EAAJzV,EAAO,GAAI,GAC7C,IAAI+vE,MAAMwlD,GAAO,KAAM,IAAI5sH,OAAM,qBACjCisH,GAAIryG,EAASviB,GAAKu1H,EAGpB,MADAjB,GAAOkB,cAAoB,EAAJx1H,EAChBA,EAGT,QAASy1H,GAAYb,EAAKQ,EAAQ7yG,EAAQriB,GAExC,MAAOo0H,GAAOkB,cAAgBE,GAAWC,GAAYP,GAASR,EAAKryG,EAAQriB,GAG7E,QAAS01H,GAAahB,EAAKQ,EAAQ7yG,EAAQriB,GAEzC,MAAOo0H,GAAOkB,cAAgBE,GAAWG,GAAaT,GAASR,EAAKryG,EAAQriB,GAG9E,QAAS41H,GAAclB,EAAKQ,EAAQ7yG,EAAQriB,GAC1C,MAAO01H,GAAYhB,EAAKQ,EAAQ7yG,EAAQriB,GAG1C,QAAS61H,GAAcnB,EAAKQ,EAAQ7yG,EAAQriB,GAE1C,MAAOo0H,GAAOkB,cAAgBE,GAAWM,GAAcZ,GAASR,EAAKryG,EAAQriB,GAG/E,QAAS+1H,GAAab,EAAQ7yG,EAAQriB,EAAQs0H,GAG5C,GAAI/0B,SAASl9E,GACNk9E,SAASv/F,KACZs0H,EAAWt0H,EACXA,EAASoJ,YAEN,CACL,GAAIg0C,GAAOk3E,CACXA,GAAWjyG,EACXA,EAASriB,EACTA,EAASo9C,EAGX/6B,EAAS2lB,OAAO3lB,IAAW,CAC3B,IAAI8yG,GAAYx5H,KAAKqE,OAASqiB,CAW9B,QAVKriB,GAGHA,EAASgoC,OAAOhoC,GACZA,EAASm1H,IACXn1H,EAASm1H,IAJXn1H,EAASm1H,EAOXb,EAAW36D,OAAO26D,GAAY,QAAQv1H,eAGpC,IAAK,MACH,MAAOk2H,GAAUt5H,KAAMu5H,EAAQ7yG,EAAQriB,EAEzC,KAAK,OACL,IAAK,QACH,MAAOu1H,GAAW55H,KAAMu5H,EAAQ7yG,EAAQriB,EAE1C,KAAK,QACH,MAAO01H,GAAY/5H,KAAMu5H,EAAQ7yG,EAAQriB,EAE3C,KAAK,SACH,MAAO41H,GAAaj6H,KAAMu5H,EAAQ7yG,EAAQriB,EAE5C,KAAK,SACH,MAAO61H,GAAal6H,KAAMu5H,EAAQ7yG,EAAQriB,EAE5C,SACE,KAAM,IAAIyI,OAAM,qBAItB,QAASutH,GAAgB1B,EAAUvpH,EAAOtB,GACxC,GAAIiP,GAAQ/c,eAAgBs6H,IACxBt6H,KAAKu6H,OACLv6H,IASJ,IAPA24H,EAAW36D,OAAO26D,GAAY,QAAQv1H,cACtCgM,EAAQi9B,OAAOj9B,IAAU,EACzBtB,EAAeL,SAARK,EACHu+B,OAAOv+B,GACPA,EAAMiP,EAAK1Y,OAGXyJ,IAAQsB,EACV,MAAO,EAET,QAAQupH,GACN,IAAK,MACH,MAAO6B,GAAUz9G,EAAM3N,EAAOtB,EAEhC,KAAK,OACL,IAAK,QACH,MAAO2sH,GAAW19G,EAAM3N,EAAOtB,EAEjC,KAAK,QACH,MAAO4sH,GAAY39G,EAAM3N,EAAOtB,EAElC,KAAK,SACH,MAAO6sH,GAAa59G,EAAM3N,EAAOtB,EAEnC,KAAK,SACH,MAAO8sH,GAAa79G,EAAM3N,EAAOtB,EAEnC,SACE,KAAM,IAAIhB,OAAM,qBAItB,QAAS+tH,KACP,OACE53H,KAAM,SACN2T,KAAM9U,MAAM+B,UAAUC,MAAMC,KAAK/D,KAAM,IAK3C,QAAS86H,GAAY/wH,EAAQgxH,EAAc3rH,EAAOtB,GAChD,GAAI+D,GAAS7R,IAOb,IALKoP,IAAOA,EAAQ,GACftB,GAAe,IAARA,IAAWA,EAAM9N,KAAKqE,QAC7B02H,IAAcA,EAAe,GAG9BjtH,IAAQsB,GACU,IAAlBrF,EAAO1F,QAAkC,IAAlBwN,EAAOxN,OAAlC,CAGA,GAAU+K,EAANtB,EACF,KAAM,IAAIhB,OAAM,0BAClB,IAAmB,EAAfiuH,GAAoBA,GAAgBhxH,EAAO1F,OAC7C,KAAM,IAAIyI,OAAM,4BAClB,IAAY,EAARsC,GAAaA,GAASyC,EAAOxN,OAC/B,KAAM,IAAIyI,OAAM,4BAClB,IAAU,EAANgB,GAAWA,EAAM+D,EAAOxN,OAC1B,KAAM,IAAIyI,OAAM,0BAGdgB,GAAM9N,KAAKqE,SACbyJ,EAAM9N,KAAKqE,QACT0F,EAAO1F,OAAS02H,EAAejtH,EAAMsB,IACvCtB,EAAM/D,EAAO1F,OAAS02H,EAAe3rH,EAGvC,KAAK,GAAIjL,GAAI,EAAO2J,EAAMsB,EAAVjL,EAAiBA,IAC/B4F,EAAO5F,EAAI42H,GAAgB/6H,KAAKmE,EAAIiL,IAGxC,QAASwrH,GAAc7B,EAAK3pH,EAAOtB,GACjC,GAAIktH,GAAQjC,EAAIj1H,MAAMsL,EAAOtB,EAC7B,OAAOqoF,GAAQ,aAAa8kC,cAAcD,GAG5C,QAASP,GAAY1B,EAAK3pH,EAAOtB,GAK/B,IAJA,GAAIktH,GAAQjC,EAAIj1H,MAAMsL,EAAOtB,GACzBuuF,EAAM,GACNwH,EAAM,GACN1/F,EAAI,EACDA,EAAI62H,EAAM32H,QACX22H,EAAM72H,IAAM,KACdk4F,GAAO6+B,GAAer3B,GAAO7lC,OAAOC,aAAa+8D,EAAM72H,IACvD0/F,EAAM,IAENA,GAAO,IAAMm3B,EAAM72H,GAAGqQ,SAAS,IAGjCrQ,GAGF,OAAOk4F,GAAM6+B,GAAer3B,GAG9B,QAAS62B,GAAa3B,EAAK3pH,EAAOtB,GAGhC,IAAK,GAFDktH,GAAQjC,EAAIj1H,MAAMsL,EAAOtB,GACzBqtH,EAAM,GACDh3H,EAAI,EAAGA,EAAI62H,EAAM32H,OAAQF,IAChCg3H,GAAOn9D,OAAOC,aAAa+8D,EAAM72H,GACnC,OAAOg3H,GAGT,QAASR,GAAc5B,EAAK3pH,EAAOtB,GACjC,MAAO4sH,GAAY3B,EAAK3pH,EAAOtB,GAGjC,QAAS0sH,GAAWzB,EAAK3pH,EAAOtB,GAC9B,GAAIwtB,GAAMy9F,EAAI10H,SAET+K,GAAiB,EAARA,KAAWA,EAAQ,KAC5BtB,GAAa,EAANA,GAAWA,EAAMwtB,KAAKxtB,EAAMwtB,EAGxC,KAAK,GADDwM,GAAM,GACD3jC,EAAIiL,EAAWtB,EAAJ3J,EAASA,IAC3B2jC,GAAOszF,GAAMrC,EAAI50H,GAEnB,OAAO2jC,GAMT,QAASuzF,GAAajsH,EAAOtB,GAC3B,GAAIwtB,GAAMt7B,KAAKqE,MAGf,OAFA+K,GAAQi6B,GAAMj6B,EAAOksB,EAAK,GAC1BxtB,EAAMu7B,GAAMv7B,EAAKwtB,EAAKA,GACf09F,GAAQh5H,KAAKo1B,SAAShmB,EAAOtB,IAGtC,QAASwtH,GAAiB50G,EAAQ60G,GAChC,GAAIxC,GAAM/4H,IAMV,OALKu7H,KACHC,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAASqyG,EAAI10H,OAAQ,wCAG1BqiB,GAAUqyG,EAAI10H,OAAlB,OAGO00H,EAAIryG,GAGb,QAAS+0G,GAAa1C,EAAKryG,EAAQ+tE,EAAc8mC,GAC1CA,IACHC,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,uCAGlC,IAAIi3B,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAAd,CAEO,GAAI5U,EAAS,IAAM4U,EAAK,CAC7B,GAAIogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,GAExC,OADAF,GAAGG,SAAS,EAAG9C,EAAIz9F,EAAM,IAClBogG,EAAGI,UAAU,EAAGrnC,GAEvB,MAAOskC,GAAIgD,UAAUD,UAAUp1G,EAAQ+tE,IAI3C,QAASunC,GAAoBt1G,EAAQ60G,GACnC,MAAOE,GAAYz7H,KAAM0mB,GAAQ,EAAM60G,GAGzC,QAASU,GAAoBv1G,EAAQ60G,GACnC,MAAOE,GAAYz7H,KAAM0mB,GAAQ,EAAO60G,GAG1C,QAASW,GAAanD,EAAKryG,EAAQ+tE,EAAc8mC,GAC1CA,IACHC,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,uCAGlC,IAAIi3B,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAAd,CAEO,GAAI5U,EAAS,GAAK4U,EAAK,CAE5B,IAAK,GADDogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,IAC/Bz3H,EAAI,EAAgBm3B,EAAbn3B,EAAIuiB,EAAcviB,IAChCu3H,EAAGG,SAAS13H,EAAG40H,EAAI50H,EAAIuiB,GAEzB,OAAOg1G,GAAGS,UAAU,EAAG1nC,GAEvB,MAAOskC,GAAIgD,UAAUI,UAAUz1G,EAAQ+tE,IAI3C,QAAS2nC,GAAoB11G,EAAQ60G,GACnC,MAAOW,GAAYl8H,KAAM0mB,GAAQ,EAAM60G,GAGzC,QAASc,GAAoB31G,EAAQ60G,GACnC,MAAOW,GAAYl8H,KAAM0mB,GAAQ,EAAO60G,GAG1C,QAASe,GAAgB51G,EAAQ60G,GAC/B,GAAIxC,GAAM/4H,IAOV,OANKu7H,KACHC,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAC3B,kBACJ80G,GAAO90G,EAASqyG,EAAI10H,OAAQ,wCAG1BqiB,GAAUqyG,EAAI10H,OAAlB,OAGO00H,EAAIgD,UAAUQ,QAAQ71G,GAG/B,QAAS81G,GAAYzD,EAAKryG,EAAQ+tE,EAAc8mC,GACzCA,IACHC,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAC3B,kBACJ80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,uCAGlC,IAAIi3B,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAAd,CAEO,GAAI5U,EAAS,IAAM4U,EAAK,CAC7B,GAAIogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,GAExC,OADAF,GAAGG,SAAS,EAAG9C,EAAIz9F,EAAM,IAClBogG,EAAGe,SAAS,EAAGhoC,GAEtB,MAAOskC,GAAIgD,UAAUU,SAAS/1G,EAAQ+tE,IAI1C,QAASioC,GAAmBh2G,EAAQ60G,GAClC,MAAOiB,GAAWx8H,KAAM0mB,GAAQ,EAAM60G,GAGxC,QAASoB,GAAmBj2G,EAAQ60G,GAClC,MAAOiB,GAAWx8H,KAAM0mB,GAAQ,EAAO60G,GAGzC,QAASqB,GAAY7D,EAAKryG,EAAQ+tE,EAAc8mC,GACzCA,IACHC,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,uCAGlC,IAAIi3B,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAAd,CAEO,GAAI5U,EAAS,GAAK4U,EAAK,CAE5B,IAAK,GADDogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,IAC/Bz3H,EAAI,EAAgBm3B,EAAbn3B,EAAIuiB,EAAcviB,IAChCu3H,EAAGG,SAAS13H,EAAG40H,EAAI50H,EAAIuiB,GAEzB,OAAOg1G,GAAGmB,SAAS,EAAGpoC,GAEtB,MAAOskC,GAAIgD,UAAUc,SAASn2G,EAAQ+tE,IAI1C,QAASqoC,GAAmBp2G,EAAQ60G,GAClC,MAAOqB,GAAW58H,KAAM0mB,GAAQ,EAAM60G,GAGxC,QAASwB,GAAmBr2G,EAAQ60G,GAClC,MAAOqB,GAAW58H,KAAM0mB,GAAQ,EAAO60G,GAGzC,QAASyB,GAAYjE,EAAKryG,EAAQ+tE,EAAc8mC,GAO9C,MANKA,KACHC,GAAiC,iBAAnB,GACV,6BACJA,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,wCAG3B00H,EAAIgD,UAAUkB,WAAWv2G,EAAQ+tE,GAG1C,QAASyoC,GAAmBx2G,EAAQ60G,GAClC,MAAOyB,GAAWh9H,KAAM0mB,GAAQ,EAAM60G,GAGxC,QAAS4B,GAAmBz2G,EAAQ60G,GAClC,MAAOyB,GAAWh9H,KAAM0mB,GAAQ,EAAO60G,GAGzC,QAAS6B,GAAarE,EAAKryG,EAAQ+tE,EAAc8mC,GAO/C,MANKA,KACHC,GAAiC,iBAAnB,GACV,6BACJA,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,wCAG3B00H,EAAIgD,UAAUsB,WAAW32G,EAAQ+tE,GAG1C,QAAS6oC,GAAoB52G,EAAQ60G,GACnC,MAAO6B,GAAYp9H,KAAM0mB,GAAQ,EAAM60G,GAGzC,QAASgC,GAAoB72G,EAAQ60G,GACnC,MAAO6B,GAAYp9H,KAAM0mB,GAAQ,EAAO60G,GAG1C,QAASiC,GAAkBj0H,EAAOmd,EAAQ60G,GACxC,GAAIxC,GAAM/4H,IACLu7H,KACHC,GAAiB/tH,SAAVlE,GAAiC,OAAVA,EAAgB,iBAC9CiyH,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAASqyG,EAAI10H,OAAQ,wCAC5Bo5H,GAAUl0H,EAAO,MAGfmd,GAAUqyG,EAAI10H,SAElB00H,EAAIryG,GAAUnd,GAGhB,QAASm0H,GAAc3E,EAAKxvH,EAAOmd,EAAQ+tE,EAAc8mC,GAClDA,IACHC,GAAiB/tH,SAAVlE,GAAiC,OAAVA,EAAgB,iBAC9CiyH,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,wCAChCo5H,GAAUl0H,EAAO,OAGnB,IAAI+xB,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAEP,GAAI5U,EAAS,IAAM4U,EAAK,CAC7B,GAAIogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,GACxCF,GAAGiC,UAAU,EAAGp0H,EAAOkrF,GACvBskC,EAAIryG,GAAUg1G,EAAGkC,SAAS,OAE1B7E,GAAIgD,UAAU4B,UAAUj3G,EAAQnd,EAAOkrF,GAI3C,QAASopC,GAAqBt0H,EAAOmd,EAAQ60G,GAC3CmC,EAAa19H,KAAMuJ,EAAOmd,GAAQ,EAAM60G,GAG1C,QAASuC,GAAqBv0H,EAAOmd,EAAQ60G,GAC3CmC,EAAa19H,KAAMuJ,EAAOmd,GAAQ,EAAO60G,GAG3C,QAASwC,GAAchF,EAAKxvH,EAAOmd,EAAQ+tE,EAAc8mC,GAClDA,IACHC,GAAiB/tH,SAAVlE,GAAiC,OAAVA,EAAgB,iBAC9CiyH,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,wCAChCo5H,GAAUl0H,EAAO,YAGnB,IAAI+xB,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAEP,GAAI5U,EAAS,GAAK4U,EAAK,CAC5B,GAAIogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,GACxCF,GAAGsC,UAAU,EAAGz0H,EAAOkrF,EACvB,KAAK,GAAItwF,GAAI,EAAgBm3B,EAAbn3B,EAAIuiB,EAAcviB,IAChC40H,EAAI50H,EAAIuiB,GAAUg1G,EAAGkC,SAASz5H,OAGhC40H,GAAIgD,UAAUiC,UAAUt3G,EAAQnd,EAAOkrF,GAI3C,QAASwpC,GAAqB10H,EAAOmd,EAAQ60G,GAC3CwC,EAAa/9H,KAAMuJ,EAAOmd,GAAQ,EAAM60G,GAG1C,QAAS2C,GAAqB30H,EAAOmd,EAAQ60G,GAC3CwC,EAAa/9H,KAAMuJ,EAAOmd,GAAQ,EAAO60G,GAG3C,QAAS4C,GAAiB50H,EAAOmd,EAAQ60G,GACvC,GAAIxC,GAAM/4H,IACLu7H,KACHC,GAAiB/tH,SAAVlE,GAAiC,OAAVA,EAAgB,iBAC9CiyH,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAASqyG,EAAI10H,OAAQ,wCAC5B+5H,GAAU70H,EAAO,IAAM,OAGrBmd,GAAUqyG,EAAI10H,QAElB00H,EAAIgD,UAAUsC,QAAQ33G,EAAQnd,GAGhC,QAAS+0H,GAAavF,EAAKxvH,EAAOmd,EAAQ+tE,EAAc8mC,GACjDA,IACHC,GAAiB/tH,SAAVlE,GAAiC,OAAVA,EAAgB,iBAC9CiyH,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,wCAChC+5H,GAAU70H,EAAO,MAAQ,QAG3B,IAAI+xB,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAEP,GAAI5U,EAAS,IAAM4U,EAAK,CAC7B,GAAIogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,GACxCF,GAAG6C,SAAS,EAAGh1H,EAAOkrF,GACtBskC,EAAIryG,GAAUg1G,EAAGkC,SAAS,OAE1B7E,GAAIgD,UAAUwC,SAAS73G,EAAQnd,EAAOkrF,GAI1C,QAAS+pC,GAAoBj1H,EAAOmd,EAAQ60G,GAC1C+C,EAAYt+H,KAAMuJ,EAAOmd,GAAQ,EAAM60G,GAGzC,QAASkD,GAAoBl1H,EAAOmd,EAAQ60G,GAC1C+C,EAAYt+H,KAAMuJ,EAAOmd,GAAQ,EAAO60G,GAG1C,QAASmD,GAAa3F,EAAKxvH,EAAOmd,EAAQ+tE,EAAc8mC,GACjDA,IACHC,GAAiB/tH,SAAVlE,GAAiC,OAAVA,EAAgB,iBAC9CiyH,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,wCAChC+5H,GAAU70H,EAAO,WAAY,aAG/B,IAAI+xB,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAEP,GAAI5U,EAAS,GAAK4U,EAAK,CAC5B,GAAIogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,GACxCF,GAAGiD,SAAS,EAAGp1H,EAAOkrF,EACtB,KAAK,GAAItwF,GAAI,EAAgBm3B,EAAbn3B,EAAIuiB,EAAcviB,IAChC40H,EAAI50H,EAAIuiB,GAAUg1G,EAAGkC,SAASz5H,OAGhC40H,GAAIgD,UAAU4C,SAASj4G,EAAQnd,EAAOkrF,GAI1C,QAASmqC,GAAoBr1H,EAAOmd,EAAQ60G,GAC1CmD,EAAY1+H,KAAMuJ,EAAOmd,GAAQ,EAAM60G,GAGzC,QAASsD,GAAoBt1H,EAAOmd,EAAQ60G,GAC1CmD,EAAY1+H,KAAMuJ,EAAOmd,GAAQ,EAAO60G,GAG1C,QAASuD,GAAa/F,EAAKxvH,EAAOmd,EAAQ+tE,EAAc8mC,GACjDA,IACHC,GAAiB/tH,SAAVlE,GAAiC,OAAVA,EAAgB,iBAC9CiyH,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OAAQ,wCAChC06H,GAAax1H,EAAO,sBAAwB,wBAG9C,IAAI+xB,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAEP,GAAI5U,EAAS,GAAK4U,EAAK,CAC5B,GAAIogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,GACxCF,GAAGsD,WAAW,EAAGz1H,EAAOkrF,EACxB,KAAK,GAAItwF,GAAI,EAAgBm3B,EAAbn3B,EAAIuiB,EAAcviB,IAChC40H,EAAI50H,EAAIuiB,GAAUg1G,EAAGkC,SAASz5H,OAGhC40H,GAAIgD,UAAUiD,WAAWt4G,EAAQnd,EAAOkrF,GAI5C,QAASwqC,IAAoB11H,EAAOmd,EAAQ60G,GAC1CuD,EAAY9+H,KAAMuJ,EAAOmd,GAAQ,EAAM60G,GAGzC,QAAS2D,IAAoB31H,EAAOmd,EAAQ60G,GAC1CuD,EAAY9+H,KAAMuJ,EAAOmd,GAAQ,EAAO60G,GAG1C,QAAS4D,IAAcpG,EAAKxvH,EAAOmd,EAAQ+tE,EAAc8mC,GAClDA,IACHC,GAAiB/tH,SAAVlE,GAAiC,OAAVA,EAAgB,iBAC9CiyH,GAAiC,iBAAnB,GACV,6BACJA,GAAkB/tH,SAAXiZ,GAAmC,OAAXA,EAAiB,kBAChD80G,GAAO90G,EAAS,EAAIqyG,EAAI10H,OACpB,wCACJ06H,GAAax1H,EAAO,uBAAyB,yBAG/C,IAAI+xB,GAAMy9F,EAAI10H,MACd,MAAIqiB,GAAU4U,GAEP,GAAI5U,EAAS,GAAK4U,EAAK,CAC5B,GAAIogG,GAAK,GAAIC,IAAU,GAAIC,IAAa,GACxCF,GAAG0D,WAAW,EAAG71H,EAAOkrF,EACxB,KAAK,GAAItwF,GAAI,EAAgBm3B,EAAbn3B,EAAIuiB,EAAcviB,IAChC40H,EAAI50H,EAAIuiB,GAAUg1G,EAAGkC,SAASz5H,OAGhC40H,GAAIgD,UAAUqD,WAAW14G,EAAQnd,EAAOkrF,GAI5C,QAAS4qC,IAAqB91H,EAAOmd,EAAQ60G,GAC3C4D,GAAan/H,KAAMuJ,EAAOmd,GAAQ,EAAM60G,GAG1C,QAAS+D,IAAqB/1H,EAAOmd,EAAQ60G,GAC3C4D,GAAan/H,KAAMuJ,EAAOmd,GAAQ,EAAO60G,GAI3C,QAASgE,IAAYh2H,EAAO6F,EAAOtB,GASjC,GARKvE,IAAOA,EAAQ,GACf6F,IAAOA,EAAQ,GACftB,IAAKA,EAAM9N,KAAKqE,QAEA,gBAAVkF,KACTA,EAAQA,EAAM2O,WAAW,IAGN,gBAAV3O,IAAsB2qE,MAAM3qE,GACrC,KAAM,IAAIuD,OAAM,wBAGlB,IAAUsC,EAANtB,EAAa,KAAM,IAAIhB,OAAM,cAGjC,IAAIgB,IAAQsB,GACQ,IAAhBpP,KAAKqE,OAAT,CAEA,GAAY,EAAR+K,GAAaA,GAASpP,KAAKqE,OAC7B,KAAM,IAAIyI,OAAM,sBAGlB,IAAU,EAANgB,GAAWA,EAAM9N,KAAKqE,OACxB,KAAM,IAAIyI,OAAM,oBAGlB,KAAK,GAAI3I,GAAIiL,EAAWtB,EAAJ3J,EAASA,IAC3BnE,KAAKmE,GAAKoF,GAId,QAASi2H,MAGP,IAAK,GAFD13F,MACAxM,EAAMt7B,KAAKqE,OACNF,EAAI,EAAOm3B,EAAJn3B,EAASA,IAEvB,GADA2jC,EAAI3jC,GAAKi3H,GAAMp7H,KAAKmE,IAChBA,IAAMu9B,EAAQ+9F,kBAAmB,CACnC33F,EAAI3jC,EAAI,GAAK,KACb,OAGJ,MAAO,WAAa2jC,EAAItnB,KAAK,KAAO,IAKtC,QAASk/G,MACP,MAAO,IAAKjH,GAAOz4H,MAAO4nB,OAO5B,QAASgxG,IAAY7yF,GACnB,MAAIA,GAAIx0B,KAAaw0B,EAAIx0B,OAClBw0B,EAAIsT,QAAQ,aAAc,IAOnC,QAASsmF,MACP,GAAI/lC,GAAM,GAAIq/B,IAAY,EAC1Br/B,GAAIgmC,IAAM,WAAc,MAAO,IAE/B,KACE,MAAQ,MAAOhmC,EAAIgmC,MACnB,MAAOjkH,GACP,OAAO,GAmCX,QAAS2+G,IAAa1gC,GACpB55F,KAAK6/H,KAAOjmC,EAEW,IAAnBA,EAAIk/B,aACN94H,KAAK+7H,UAAY,GAAIJ,IAAU/hC,EAAIhyE,OAAQgyE,EAAIkmC,WAAYlmC,EAAIk/B,aA0DnE,QAASE,IAASp/B,GAKhB,GAJuBnsF,SAAnBsyH,KACFA,GAAiBJ,MAGfI,GA4CF,MA1CAnmC,GAAIy/B,MAAQe,EACZxgC,EAAIplF,SAAW6lH,EACfzgC,EAAIomC,eAAiB3F,EACrBzgC,EAAIqmC,OAASpF,EACbjhC,EAAIpzD,KAAOs0F,EACXlhC,EAAI91F,MAAQu3H,EACZzhC,EAAIw/B,UAAYkC,EAChB1hC,EAAIsmC,aAAelE,EACnBpiC,EAAIumC,aAAelE,EACnBriC,EAAIwmC,aAAehE,EACnBxiC,EAAIymC,aAAehE,EACnBziC,EAAI0mC,SAAWhE,EACf1iC,EAAI2mC,YAAc7D,EAClB9iC,EAAI4mC,YAAc7D,EAClB/iC,EAAI6mC,YAAc3D,EAClBljC,EAAI8mC,YAAc3D,EAClBnjC,EAAI+mC,YAAczD,EAClBtjC,EAAIgnC,YAAczD,EAClBvjC,EAAIinC,aAAevD,EACnB1jC,EAAIknC,aAAevD,EACnB3jC,EAAImnC,WAAavD,EACjB5jC,EAAIonC,cAAgBnD,EACpBjkC,EAAIqnC,cAAgBnD,EACpBlkC,EAAIsnC,cAAgBjD,EACpBrkC,EAAIunC,cAAgBjD,EACpBtkC,EAAIwnC,UAAYjD,EAChBvkC,EAAIynC,aAAe7C,EACnB5kC,EAAI0nC,aAAe7C,EACnB7kC,EAAI2nC,aAAe3C,EACnBhlC,EAAI4nC,aAAe3C,EACnBjlC,EAAI6nC,aAAexC,GACnBrlC,EAAI8nC,aAAexC,GACnBtlC,EAAI+nC,cAAgBtC,GACpBzlC,EAAIgoC,cAAgBtC,GACpB1lC,EAAI9lF,KAAOyrH,GACX3lC,EAAIioC,QAAUrC,GACd5lC,EAAIkoC,cAAgBpC,GACpB9lC,EAAImoC,WAAY,EAEO,IAAnBnoC,EAAIk/B,aACNl/B,EAAImiC,UAAY,GAAIJ,IAAU/hC,EAAIhyE,OAAQgyE,EAAIkmC,WAAYlmC,EAAIk/B,aAEzDl/B,CAKP,IAAIooC,GAAc,GAAI1H,IAAY1gC,GAC9BqoC,EAAQ,GAAIC,OAAMF,EAAaG,GAEnC,OADAH,GAAYzH,OAAS0H,EACdA,EAKX,QAAS54F,IAAO18B,EAAO2uB,EAAK8mG,GAC1B,MAAqB,gBAAVz1H,GAA2By1H,GACtCz1H,IAAUA,EACNA,GAAS2uB,EAAYA,EACrB3uB,GAAS,EAAUA,GACvBA,GAAS2uB,EACL3uB,GAAS,EAAUA,EAChB,IAGT,QAASksH,IAAQx0H,GAKf,MADAA,KAAWnC,KAAKqU,MAAMlS,GACN,EAATA,EAAa,EAAIA,EAG1B,QAAS80H,IAAYT,GACnB,MAAO52H,OAAM6kC,QAAQ+xF,IAAYD,EAAOS,SAASR,IAC7CA,GAA8B,gBAAZA,IACQ,gBAAnBA,GAAQr0H,OAGrB,QAAS+2H,IAAOt9G,GACd,MAAQ,IAAJA,EAAe,IAAMA,EAAEtJ,SAAS,IAC7BsJ,EAAEtJ,SAAS,IAGpB,QAASslH,IAAa/zF,GAEpB,IAAK,GADDs8F,MACKl+H,EAAI,EAAGA,EAAI4hC,EAAI1hC,OAAQF,IAC9B,GAAI4hC,EAAI7tB,WAAW/T,IAAM,IACvBk+H,EAAU/9H,KAAKyhC,EAAI7tB,WAAW/T,QAG9B,KAAK,GADDs2B,GAAI6nG,mBAAmBv8F,EAAI3tB,OAAOjU,IAAIyV,OAAO,GAAGjF,MAAM,KACjD9P,EAAI,EAAGA,EAAI41B,EAAEp2B,OAAQQ,IAC5Bw9H,EAAU/9H,KAAKsT,SAAS6iB,EAAE51B,GAAI,IAGpC,OAAOw9H,GAGT,QAASrI,IAAcj0F,GAErB,IAAK,GADDs8F,MACKl+H,EAAI,EAAGA,EAAI4hC,EAAI1hC,OAAQF,IAE9Bk+H,EAAU/9H,KAAyB,IAApByhC,EAAI7tB,WAAW/T,GAGhC,OAAOk+H,GAGT,QAASlI,IAAep0F,GACtB,MAAOowD,GAAQ,aAAaosC,YAAYx8F,GAG1C,QAAS8zF,IAAYt5G,EAAKiiH,EAAK97G,EAAQriB,GAErC,IADA,GAASF,GAAI,EACFE,EAAJF,KACAA,EAAIuiB,GAAU87G,EAAIn+H,QAAYF,GAAKoc,EAAIlc,SAG5Cm+H,EAAIr+H,EAAIuiB,GAAUnG,EAAIpc,GACtBA,GAEF,OAAOA,GAGT,QAAS+2H,IAAgBn1F,GACvB,IACE,MAAO06D,oBAAmB16D,GAC1B,MAAO4H,GACP,MAAOqwB,QAAOC,aAAa,QAa/B,QAASw/D,IAAWl0H,EAAO2L,GACzBsmH,GAAyB,gBAAX,GAAqB,yCACnCA,GAAOjyH,GAAS,EACZ,4DACJiyH,GAAgBtmH,GAAT3L,EAAc,+CACrBiyH,GAAOt5H,KAAKmoC,MAAM9gC,KAAWA,EAAO,oCAMtC,QAAS60H,IAAU70H,EAAO2L,EAAK2kB,GAC7B2hG,GAAyB,gBAAX,GAAqB,yCACnCA,GAAgBtmH,GAAT3L,EAAc,2CACrBiyH,GAAOjyH,GAASswB,EAAK,4CACrB2hG,GAAOt5H,KAAKmoC,MAAM9gC,KAAWA,EAAO,oCAGtC,QAASw1H,IAAax1H,EAAO2L,EAAK2kB,GAChC2hG,GAAyB,gBAAX,GAAqB,yCACnCA,GAAgBtmH,GAAT3L,EAAc,2CACrBiyH,GAAOjyH,GAASswB,EAAK,4CAGvB,QAAS2hG,IAAQrjH,EAAMsqH,GACrB,IAAKtqH,EAAM,KAAM,IAAIrL,OAAM21H,GAAW,oBAzmCxC,GAAIC,IAAKvsC,EAAQ,cACbwlC,GAAgC,mBAAbgH,UACnBD,GAAGC,SAAWA,SACd/G,GAAsC,mBAAhBt+C,aACtBolD,GAAGplD,YAAcA,YACjB27C,GAAoC,mBAAf53F,YACrBqhG,GAAGrhG,WAAaA,UAEpBK,GAAQ+2F,OAASA,EACjB/2F,EAAQkhG,WAAanK,EACrB/2F,EAAQ+9F,kBAAoB,GAC5BhH,EAAOoK,SAAW,IAElB,IAAI9C,GA+DJtH,GAAOqK,WAAa,SAASnK,GAC3B,QAASA,EAAW,IAAIv1H,eACtB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,MACH,OAAO,CAET,SACE,OAAO,IAIbq1H,EAAOS,SAAW,SAAmB5zH,GACnC,MAAOA,IAAKA,EAAEy8H,WAGhBtJ,EAAOK,WAAa,SAAU/yF,EAAK4yF,GACjC,OAAQA,GAAY,QAClB,IAAK,MACH,MAAO5yF,GAAI1hC,OAAS,CAEtB,KAAK,OACL,IAAK,QACH,MAAOy1H,IAAY/zF,GAAK1hC,MAE1B,KAAK,QACL,IAAK,SACH,MAAO0hC,GAAI1hC,MAEb,KAAK,SACH,MAAO81H,IAAcp0F,GAAK1hC,MAE5B,SACE,KAAM,IAAIyI,OAAM,sBAItB2rH,EAAOt9G,OAAS,SAAUgC,EAAM4lH,GAC9B,IAAKjhI,MAAM6kC,QAAQxpB,GACjB,KAAM,IAAIrQ,OAAM,sEAIlB,IAAI3I,GACA40H,CAEJ,IAAoB,IAAhB57G,EAAK9Y,OACP,MAAO,IAAIo0H,GAAO,EACb,IAAoB,IAAhBt7G,EAAK9Y,OACd,MAAO8Y,GAAK,EAGd,IAA2B,gBAAhB4lH,GAET,IADAA,EAAc,EACT5+H,EAAI,EAAGA,EAAIgZ,EAAK9Y,OAAQF,IAC3B40H,EAAM57G,EAAKhZ,GACX4+H,GAAehK,EAAI10H,MAIvB,IAAIujB,GAAS,GAAI6wG,GAAOsK,GACpBh9H,EAAM,CACV,KAAK5B,EAAI,EAAGA,EAAIgZ,EAAK9Y,OAAQF,IAC3B40H,EAAM57G,EAAKhZ,GACX40H,EAAIvyF,KAAK5e,EAAQ7hB,GACjBA,GAAOgzH,EAAI10H,MAEb,OAAOujB,IA8uBT0yG,GAAYz2H,UAAUw1H,MAAQe,EAC9BE,GAAYz2H,UAAU2Q,SAAW6lH,EACjCC,GAAYz2H,UAAUm8H,eAAiB3F,EACvCC,GAAYz2H,UAAUo8H,OAASpF,EAC/BP,GAAYz2H,UAAU2iC,KAAOs0F,EAC7BR,GAAYz2H,UAAUC,MAAQu3H,EAC9Bf,GAAYz2H,UAAUu1H,UAAYkC,EAClChB,GAAYz2H,UAAUq8H,aAAelE,EACrC1B,GAAYz2H,UAAUs8H,aAAelE,EACrC3B,GAAYz2H,UAAUu8H,aAAehE,EACrC9B,GAAYz2H,UAAUw8H,aAAehE,EACrC/B,GAAYz2H,UAAUy8H,SAAWhE,EACjChC,GAAYz2H,UAAU08H,YAAc7D,EACpCpC,GAAYz2H,UAAU28H,YAAc7D,EACpCrC,GAAYz2H,UAAU48H,YAAc3D,EACpCxC,GAAYz2H,UAAU68H,YAAc3D,EACpCzC,GAAYz2H,UAAU88H,YAAczD,EACpC5C,GAAYz2H,UAAU+8H,YAAczD,EACpC7C,GAAYz2H,UAAUg9H,aAAevD,EACrChD,GAAYz2H,UAAUi9H,aAAevD,EACrCjD,GAAYz2H,UAAUk9H,WAAavD,EACnClD,GAAYz2H,UAAUm9H,cAAgBnD,EACtCvD,GAAYz2H,UAAUo9H,cAAgBnD,EACtCxD,GAAYz2H,UAAUq9H,cAAgBjD,EACtC3D,GAAYz2H,UAAUs9H,cAAgBjD,EACtC5D,GAAYz2H,UAAUu9H,UAAYjD,EAClC7D,GAAYz2H,UAAUw9H,aAAe7C,EACrClE,GAAYz2H,UAAUy9H,aAAe7C,EACrCnE,GAAYz2H,UAAU09H,aAAe3C,EACrCtE,GAAYz2H,UAAU29H,aAAe3C,EACrCvE,GAAYz2H,UAAU49H,aAAexC,GACrC3E,GAAYz2H,UAAU69H,aAAexC,GACrC5E,GAAYz2H,UAAU89H,cAAgBtC,GACtC/E,GAAYz2H,UAAU+9H,cAAgBtC,GACtChF,GAAYz2H,UAAUiQ,KAAOyrH,GAC7BjF,GAAYz2H,UAAUg+H,QAAUrC,GAChClF,GAAYz2H,UAAUi+H,cAAgBpC,GACtCpF,GAAYz2H,UAAUk+H,WAAY,EAClCzH,GAAYz2H,UAAUuxB,SAAW,WAC/B,MAAOp1B,MAAK6/H,KAAKzqG,SAAS3xB,MAAMzD,KAAK6/H,KAAM77H,YAE7Cs2H,GAAYz2H,UAAUyF,IAAM,WAC1B,MAAOtJ,MAAK6/H,KAAKv2H,IAAI7F,MAAMzD,KAAK6/H,KAAM77H,WAGxC,IAAIm+H,KACF94H,IAAK,SAAUU,EAAQsT,GACrB,MAAIA,KAAQtT,GAAeA,EAAOsT,GACtBtT,EAAO81H,KAAKxiH,IAE1B/T,IAAK,SAAUS,EAAQsT,EAAM9T,GAC3BQ,EAAO81H,KAAKxiH,GAAQ9T,MAoLrBy5H,YAAY,EAAEC,WAAa,IAAIC,4BAA4B,SAAS/sC,EAAQx0D,GAC/EA,EAAOD,QAAQy0D,EAAQ,eACjBgtC,GAAG,SAAShtC,EAAQx0D,IACzB,WACA,YAIA,SAASyhG,GAAeC,GACvB,GAAIl/H,GAAGU,EAAG4/B,EAAGo/D,EAAKy/B,EAAc1pC,CAEhC,IAAIypC,EAAIh/H,OAAS,EAAI,EACpB,KAAM,gDAiBP,KATAi/H,EAAeD,EAAIhgI,QAAQ,KAC3BigI,EAAeA,EAAe,EAAID,EAAIh/H,OAASi/H,EAAe,EAG9D1pC,KAGAn1D,EAAI6+F,EAAe,EAAID,EAAIh/H,OAAS,EAAIg/H,EAAIh/H,OAEvCF,EAAI,EAAGU,EAAI,EAAO4/B,EAAJtgC,EAAOA,GAAK,EAAGU,GAAK,EACtCg/F,EAAO0/B,EAAOlgI,QAAQggI,EAAIl/H,KAAO,GAAOo/H,EAAOlgI,QAAQggI,EAAIl/H,EAAI,KAAO,GAAOo/H,EAAOlgI,QAAQggI,EAAIl/H,EAAI,KAAO,EAAKo/H,EAAOlgI,QAAQggI,EAAIl/H,EAAI,IACvIy1F,EAAIt1F,MAAY,SAANu/F,IAAmB,IAC7BjK,EAAIt1F,MAAY,MAANu/F,IAAiB,GAC3BjK,EAAIt1F,KAAW,IAANu/F,EAYV,OATqB,KAAjBy/B,GACHz/B,EAAO0/B,EAAOlgI,QAAQggI,EAAIl/H,KAAO,EAAMo/H,EAAOlgI,QAAQggI,EAAIl/H,EAAI,KAAO,EACrEy1F,EAAIt1F,KAAW,IAANu/F,IACkB,IAAjBy/B,IACVz/B,EAAO0/B,EAAOlgI,QAAQggI,EAAIl/H,KAAO,GAAOo/H,EAAOlgI,QAAQggI,EAAIl/H,EAAI,KAAO,EAAMo/H,EAAOlgI,QAAQggI,EAAIl/H,EAAI,KAAO,EAC1Gy1F,EAAIt1F,KAAMu/F,GAAO,EAAK,KACtBjK,EAAIt1F,KAAW,IAANu/F,IAGHjK,EAGR,QAAS4pC,GAAcC,GAMtB,QAASC,GAAiB7lG,GACzB,MAAO0lG,GAAO1lG,GAAO,GAAK,IAAQ0lG,EAAO1lG,GAAO,GAAK,IAAQ0lG,EAAO1lG,GAAO,EAAI,IAAQ0lG,EAAa,GAAN1lG,GAN/F,GAAI15B,GAGH+yB,EAAM7yB,EAFNs/H,EAAaF,EAAMp/H,OAAS,EAC5BsjC,EAAS,EAQV,KAAKxjC,EAAI,EAAGE,EAASo/H,EAAMp/H,OAASs/H,EAAgBt/H,EAAJF,EAAYA,GAAK,EAChE+yB,GAAQusG,EAAMt/H,IAAM,KAAOs/H,EAAMt/H,EAAI,IAAM,GAAMs/H,EAAMt/H,EAAI,GAC3DwjC,GAAU+7F,EAAgBxsG,EAI3B,QAAQysG,GACP,IAAK,GACJzsG,EAAOusG,EAAMA,EAAMp/H,OAAS,GAC5BsjC,GAAU47F,EAAOrsG,GAAQ,GACzByQ,GAAU47F,EAAQrsG,GAAQ,EAAK,IAC/ByQ,GAAU,IACV,MACD,KAAK,GACJzQ,GAAQusG,EAAMA,EAAMp/H,OAAS,IAAM,GAAMo/H,EAAMA,EAAMp/H,OAAS,GAC9DsjC,GAAU47F,EAAOrsG,GAAQ,IACzByQ,GAAU47F,EAAQrsG,GAAQ,EAAK,IAC/ByQ,GAAU47F,EAAQrsG,GAAQ,EAAK,IAC/ByQ,GAAU,IAIZ,MAAOA,GA3ER,GAAI47F,GAAS,kEA8Eb5hG,GAAOD,QAAQ6gG,YAAca,EAC7BzhG,EAAOD,QAAQu5F,cAAgBuI,UAG1BI,GAAG,SAASztC,EAAQx0D,EAAOD,GAkCjC,QAASmiG,GAAoB7nH,GAC3B,GAAI8nH,GAAuB16H,EAAgB,CACzC,GAAsCjF,GAAlC4/H,EAAQD,EAAoB9nH,EAChC,KAAK7X,EAAI,EAAGA,EAAI4/H,EAAM1/H,OAAQF,GAAK,EACjCiF,EAAe4S,EAAK+nH,EAAM5/H,IACxBoF,MAAOyS,EAAI+nH,EAAM5/H,IACjB6/H,UAAU,EACVC,YAAY,EACZC,cAAc,KA+BtB,QAASC,GAAmBnoH,GAK1B,QAASooH,GAAkBz3H,GACzBvD,EAAe4S,EAAKrP,GAClBtD,IAAO,WAAa,MAAO2S,GAAIqoH,QAAQ13H,IACvCrD,IAAO,SAASwW,GAAK9D,EAAIsoH,QAAQ33H,EAAOmT,IACxCmkH,YAAY,EACZC,cAAc,IATlB,GAAK96H,EAAL,CAEA,GAAI4S,EAAI3X,OAASkgI,EAAkB,KAAM,IAAIC,YAAW,+BAWxD,IAAIrgI,EACJ,KAAKA,EAAI,EAAGA,EAAI6X,EAAI3X,OAAQF,GAAK,EAC/BigI,EAAkBjgI,IAQtB,QAASsgI,GAAUl7H,EAAOm7H,GAAQ,GAAIl6F,GAAI,GAAKk6F,CAAM,OAAQn7H,IAASihC,GAAMA,EAC5E,QAASm6F,GAAYp7H,EAAOm7H,GAAQ,GAAIl6F,GAAI,GAAKk6F,CAAM,OAAQn7H,IAASihC,IAAOA,EAE/E,QAASo6F,GAAO9mH,GAAK,OAAY,IAAJA,GAC7B,QAAS+mH,GAAS7J,GAAS,MAAOyJ,GAAUzJ,EAAM,GAAI,GAEtD,QAAS8J,GAAOhnH,GAAK,OAAY,IAAJA,GAC7B,QAASinH,GAAS/J,GAAS,MAAO2J,GAAY3J,EAAM,GAAI,GAExD,QAASgK,GAAclnH,GAA2B,MAAtBA,GAAI4pB,EAAM2E,OAAOvuB,KAAiB,EAAJA,EAAQ,EAAIA,EAAI,IAAO,IAAW,IAAJA,GAExF,QAASmnH,GAAQnnH,GAAK,OAASA,GAAK,EAAK,IAAU,IAAJA,GAC/C,QAASonH,GAAUlK,GAAS,MAAOyJ,GAAUzJ,EAAM,IAAM,EAAIA,EAAM,GAAI,IAEvE,QAASmK,GAAQrnH,GAAK,OAASA,GAAK,EAAK,IAAU,IAAJA,GAC/C,QAASsnH,GAAUpK,GAAS,MAAO2J,GAAY3J,EAAM,IAAM,EAAIA,EAAM,GAAI,IAEzE,QAASqK,GAAQvnH,GAAK,OAASA,GAAK,GAAM,IAAOA,GAAK,GAAM,IAAOA,GAAK,EAAK,IAAU,IAAJA,GACnF,QAASwnH,GAAUtK,GAAS,MAAOyJ,GAAUzJ,EAAM,IAAM,GAAKA,EAAM,IAAM,GAAKA,EAAM,IAAM,EAAIA,EAAM,GAAI,IAEzG,QAASuK,GAAQznH,GAAK,OAASA,GAAK,GAAM,IAAOA,GAAK,GAAM,IAAOA,GAAK,EAAK,IAAU,IAAJA,GACnF,QAAS0nH,GAAUxK,GAAS,MAAO2J,GAAY3J,EAAM,IAAM,GAAKA,EAAM,IAAM,GAAKA,EAAM,IAAM,EAAIA,EAAM,GAAI,IAE3G,QAASyK,GAAY3lH,EAAG4lH,EAAOC,GAM7B,QAASC,GAAY9nH,GACnB,GAAIuH,GAAIglB,EAAMvsB,GAAI6nB,EAAI7nB,EAAIuH,CAC1B,OAAQ,GAAJsgB,EACKtgB,EACLsgB,EAAI,GACCtgB,EAAI,EACNA,EAAI,EAAIA,EAAI,EAAIA,EAVzB,GACImlB,GAAG7uB,EAAGgqB,EACNxhC,EAAGugI,EAAM3+F,EAAKi1F,EAFd6K,GAAQ,GAAMH,EAAQ,GAAM,CAmDhC,KArCI5lH,IAAMA,GAGRnE,GAAK,GAAK+pH,GAAS,EAAG//F,EAAIs0D,EAAI,EAAG0rC,EAAQ,GAAIn7F,EAAI,GAClCl8B,MAANwR,GAAkBA,KAAOxR,KAClCqN,GAAK,GAAK+pH,GAAS,EAAG//F,EAAI,EAAG6E,EAAS,EAAJ1qB,EAAS,EAAI,GAChC,IAANA,GACTnE,EAAI,EAAGgqB,EAAI,EAAG6E,EAAK,EAAI1qB,KAAOxR,IAAY,EAAI,IAE9Ck8B,EAAQ,EAAJ1qB,EACJA,EAAIqN,EAAIrN,GAEJA,GAAKm6E,EAAI,EAAG,EAAI4rC,IAClBlqH,EAAIke,EAAIwQ,EAAM7mC,EAAIsc,GAAKgmH,GAAM,MAC7BngG,EAAIigG,EAAY9lH,EAAIm6E,EAAI,EAAGt+E,GAAKs+E,EAAI,EAAG0rC,IACnChgG,EAAIs0D,EAAI,EAAG0rC,IAAU,IACvBhqH,GAAQ,EACRgqB,EAAI,GAEFhqB,EAAIkqH,GAENlqH,GAAK,GAAK+pH,GAAS,EACnB//F,EAAI,IAGJhqB,GAAQkqH,EACRlgG,GAAQs0D,EAAI,EAAG0rC,MAIjBhqH,EAAI,EACJgqB,EAAIigG,EAAY9lH,EAAIm6E,EAAI,EAAG,EAAI4rC,EAAOF,MAK1CjB,KACKvgI,EAAIwhI,EAAOxhI,EAAGA,GAAK,EAAKugI,EAAKpgI,KAAKqhC,EAAI,EAAI,EAAI,GAAIA,EAAI0E,EAAM1E,EAAI,EACrE,KAAKxhC,EAAIuhI,EAAOvhI,EAAGA,GAAK,EAAKugI,EAAKpgI,KAAKqX,EAAI,EAAI,EAAI,GAAIA,EAAI0uB,EAAM1uB,EAAI,EAOrE,KANA+oH,EAAKpgI,KAAKkmC,EAAI,EAAI,GAClBk6F,EAAKxzG,UACL6U,EAAM2+F,EAAKlkH,KAAK,IAGhBw6G,KACOj1F,EAAI1hC,QACT22H,EAAM12H,KAAKsT,SAASmuB,EAAIw6D,UAAU,EAAG,GAAI,IACzCx6D,EAAMA,EAAIw6D,UAAU,EAEtB,OAAOy6B,GAGT,QAAS+K,GAAc/K,EAAO0K,EAAOC,GAGnC,GAAexhI,GAAGU,EAAGS,EAAGygC,EACpB8/F,EAAMr7F,EAAG7uB,EAAGgqB,EADZ++F,IAGJ,KAAKvgI,EAAI62H,EAAM32H,OAAQF,EAAGA,GAAK,EAE7B,IADAmB,EAAI01H,EAAM72H,EAAI,GACTU,EAAI,EAAGA,EAAGA,GAAK,EAClB6/H,EAAKpgI,KAAKgB,EAAI,EAAI,EAAI,GAAIA,IAAS,CAavC,OAVAo/H,GAAKxzG,UACL6U,EAAM2+F,EAAKlkH,KAAK,IAGhBqlH,GAAQ,GAAMH,EAAQ,GAAM,EAC5Bl7F,EAAI5yB,SAASmuB,EAAIw6D,UAAU,EAAG,GAAI,GAAK,GAAK,EAC5C5kF,EAAI/D,SAASmuB,EAAIw6D,UAAU,EAAG,EAAImlC,GAAQ,GAC1C//F,EAAI/tB,SAASmuB,EAAIw6D,UAAU,EAAImlC,GAAQ,GAGnC/pH,KAAO,GAAK+pH,GAAS,EACV,IAAN//F,EAAU23E,IAAUhvG,IAAJk8B,EACd7uB,EAAI,EAEN6uB,EAAIyvD,EAAI,EAAGt+E,EAAIkqH,IAAS,EAAIlgG,EAAIs0D,EAAI,EAAG0rC,IAC/B,IAANhgG,EAEF6E,EAAIyvD,EAAI,IAAK4rC,EAAO,KAAOlgG,EAAIs0D,EAAI,EAAG0rC,IAElC,EAAJn7F,GAAS,EAAI,EAIxB,QAASw7F,GAAU1gI,GAAK,MAAOygI,GAAczgI,EAAG,GAAI,IACpD,QAAS2gI,GAAQnmH,GAAK,MAAO2lH,GAAY3lH,EAAG,GAAI,IAChD,QAASomH,GAAU5gI,GAAK,MAAOygI,GAAczgI,EAAG,EAAG,IACnD,QAAS6gI,GAAQrmH,GAAK,MAAO2lH,GAAY3lH,EAAG,EAAG,IAjO/C,GAAIrS,GAAY,OAIZ82H,EAAmB,IAGnB6B,EAAc,WAEhB,GAAIC,GAAOl9H,OAAOtF,UAAU2Q,SACxB8xH,EAAQn9H,OAAOtF,UAAUyiC,cAE7B,QAEEigG,MAAO,SAASzmH,GAAK,MAAOumH,GAAKtiI,KAAK+b,GAAGu5B,QAAQ,mBAAoB,KACrEmtF,YAAa,SAAS3/F,EAAG3iC,GAAK,MAAOA,KAAK2iC,IAC1C4/F,eAAgB,SAAS5/F,EAAG3iC,GAAK,MAAOoiI,GAAMviI,KAAK8iC,EAAG3iC,IACtDwiI,WAAY,SAAS7/F,GAAK,MAAoB,kBAANA,IACxC8/F,QAAS,SAAS7mH,GAAK,MAAOA,IAAK,GACnC8mH,SAAU,SAAS9mH,GAAK,MAAOA,KAAM,OAKrCgmH,EAAM5jI,KAAK4jI,IACX34G,EAAMjrB,KAAKirB,IACXkd,EAAQnoC,KAAKmoC,MACb7mC,EAAMtB,KAAKsB,IACXq2B,EAAM33B,KAAK23B,IACXogE,EAAM/3F,KAAK+3F,IACXvyD,EAAQxlC,KAAKwlC,MAqBbt+B,EAAiBD,OAAOC,gBAAkB,SAASy9B,EAAG3iC,EAAG2iI,GAC3D,IAAKhgG,IAAM19B,OAAO09B,GAAI,KAAM,IAAIzrB,WAAU,6CAI1C,OAHIgrH,GAAWI,YAAYK,EAAM,QAAU19H,OAAOtF,UAAUijI,kBAAoB39H,OAAOtF,UAAUijI,iBAAiB/iI,KAAK8iC,EAAG3iC,EAAG2iI,EAAKx9H,KAC9H+8H,EAAWI,YAAYK,EAAM,QAAU19H,OAAOtF,UAAUkjI,kBAAoB59H,OAAOtF,UAAUkjI,iBAAiBhjI,KAAK8iC,EAAG3iC,EAAG2iI,EAAKv9H,KAC9H88H,EAAWI,YAAYK,EAAM,WAAYhgG,EAAE3iC,GAAK2iI,EAAKt9H,OAClDs9B,GAGLi9F,EAAsB36H,OAAO26H,qBAAuB,SAA6Bj9F,GACnF,GAAIA,IAAM19B,OAAO09B,GAAI,KAAM,IAAIzrB,WAAU,kDACzC,IAAgBlX,GAAZ6/H,IACJ,KAAK7/H,IAAK2iC,GACJu/F,EAAWK,eAAe5/F,EAAG3iC,IAC/B6/H,EAAMz/H,KAAKJ,EAGf,OAAO6/H,KAqKR,WAqCC,QAASiD,GAAgBC,EAAiBzyB,EAAM0yB,GAI9C,GAAIC,EA0MJ,OAzMAA,GAAO,SAASv/G,EAAQk4G,EAAYz7H,GAClC,GAAIuB,GAAOwhI,EAAUjjI,EAAGqmC,CAExB,IAAKxmC,UAAUK,QAAkC,gBAAjBL,WAAU,GAQnC,GAA4B,gBAAjBA,WAAU,IAAmBA,UAAU,GAAGmB,cAAgBgiI,EAS1E,IAPAvhI,EAAQ5B,UAAU,GAElBhE,KAAKqE,OAASuB,EAAMvB,OACpBrE,KAAK84H,WAAa94H,KAAKqE,OAASrE,KAAKqnI,kBACrCrnI,KAAK4nB,OAAS,GAAI01D,GAAYt9E,KAAK84H,YACnC94H,KAAK8/H,WAAa,EAEb37H,EAAI,EAAGA,EAAInE,KAAKqE,OAAQF,GAAK,EAChCnE,KAAKskI,QAAQngI,EAAGyB,EAAMy+H,QAAQlgI,QAE3B,IAA4B,gBAAjBH,WAAU,KACfA,UAAU,YAAcs5E,IAAkD,gBAAnC8oD,EAAWG,MAAMviI,UAAU,KAaxE,CAAA,GAA4B,gBAAjBA,WAAU,MAChBA,UAAU,YAAcs5E,IAAkD,gBAAnC8oD,EAAWG,MAAMviI,UAAU,KAgC5E,KAAM,IAAIoX,WAAU,8BA1BpB,IAHApb,KAAK4nB,OAASA,EAEd5nB,KAAK8/H,WAAasG,EAAWQ,SAAS9G,GAClC9/H,KAAK8/H,WAAa9/H,KAAK4nB,OAAOkxG,WAChC,KAAM,IAAI0L,YAAW,0BAGvB,IAAIxkI,KAAK8/H,WAAa9/H,KAAKqnI,kBAGzB,KAAM,IAAI7C,YAAW,iFAGvB,IAAIxgI,UAAUK,OAAS,EAAG,CAGxB,GAFArE,KAAK84H,WAAa94H,KAAK4nB,OAAOkxG,WAAa94H,KAAK8/H,WAE5C9/H,KAAK84H,WAAa94H,KAAKqnI,kBACzB,KAAM,IAAI7C,YAAW,uEAEvBxkI,MAAKqE,OAASrE,KAAK84H,WAAa94H,KAAKqnI,sBAErCrnI,MAAKqE,OAAS+hI,EAAWQ,SAASviI,GAClCrE,KAAK84H,WAAa94H,KAAKqE,OAASrE,KAAKqnI,iBAGvC,IAAKrnI,KAAK8/H,WAAa9/H,KAAK84H,WAAc94H,KAAK4nB,OAAOkxG,WACpD,KAAM,IAAI0L,YAAW,4EAlCvB,KAPA4C,EAAWpjI,UAAU,GAErBhE,KAAKqE,OAAS+hI,EAAWQ,SAASQ,EAAS/iI,QAC3CrE,KAAK84H,WAAa94H,KAAKqE,OAASrE,KAAKqnI,kBACrCrnI,KAAK4nB,OAAS,GAAI01D,GAAYt9E,KAAK84H,YACnC94H,KAAK8/H,WAAa,EAEb37H,EAAI,EAAGA,EAAInE,KAAKqE,OAAQF,GAAK,EAChCqmC,EAAI48F,EAASjjI,GACbnE,KAAKskI,QAAQngI,EAAGkoC,OAAO7B,QAhCgC,CAGzD,GADAxqC,KAAKqE,OAAS+hI,EAAWO,QAAQ3iI,UAAU,IAC9B,EAATK,EAAY,KAAM,IAAImgI,YAAW,8DAErCxkI,MAAK84H,WAAa94H,KAAKqE,OAASrE,KAAKqnI,kBACrCrnI,KAAK4nB,OAAS,GAAI01D,GAAYt9E,KAAK84H,YACnC94H,KAAK8/H,WAAa,EA+DpB9/H,KAAKmF,YAAcgiI,EAEnBtD,EAAoB7jI,MACpBmkI,EAAmBnkI,OAGrBmnI,EAAKtjI,UAAY,GAAIyjI,GACrBH,EAAKtjI,UAAUwjI,kBAAoBJ,EACnCE,EAAKtjI,UAAU0jI,MAAQ/yB,EACvB2yB,EAAKtjI,UAAU2jI,QAAUN,EACzBC,EAAKE,kBAAoBJ,EAGzBE,EAAKtjI,UAAUwgI,QAAU,SAAS13H,GAChC,GAAI3I,UAAUK,OAAS,EAAG,KAAM,IAAIojI,aAAY,uBAGhD,IADA96H,EAAQy5H,EAAWQ,SAASj6H,GACxBA,GAAS3M,KAAKqE,OAChB,MAAOoJ,EAGT,IAAgBtJ,GAAG0iC,EAAfm0F,IACJ,KAAK72H,EAAI,EAAG0iC,EAAI7mC,KAAK8/H,WAAanzH,EAAQ3M,KAAKqnI,kBAC1CljI,EAAInE,KAAKqnI,kBACTljI,GAAK,EAAG0iC,GAAK,EAChBm0F,EAAM12H,KAAKtE,KAAK4nB,OAAO8/G,OAAO7gG,GAEhC,OAAO7mC,MAAKwnI,QAAQxM,IAItBmM,EAAKtjI,UAAUwF,IAAM89H,EAAKtjI,UAAUwgI,QAGpC8C,EAAKtjI,UAAUygI,QAAU,SAAS33H,EAAOpD,GACvC,GAAIvF,UAAUK,OAAS,EAAG,KAAM,IAAIojI,aAAY,uBAGhD,IADA96H,EAAQy5H,EAAWQ,SAASj6H,GACxBA,GAAS3M,KAAKqE,OAChB,MAAOoJ,EAGT,IAA+BtJ,GAAG0iC,EAA9Bm0F,EAAQh7H,KAAKunI,MAAMh+H,EACvB,KAAKpF,EAAI,EAAG0iC,EAAI7mC,KAAK8/H,WAAanzH,EAAQ3M,KAAKqnI,kBAC1CljI,EAAInE,KAAKqnI,kBACTljI,GAAK,EAAG0iC,GAAK,EAChB7mC,KAAK4nB,OAAO8/G,OAAO7gG,GAAKm0F,EAAM72H,IAMlCgjI,EAAKtjI,UAAUyF,IAAM,WACnB,GAAItF,UAAUK,OAAS,EAAG,KAAM,IAAIojI,aAAY,uBAChD,IAAI7hI,GAAOwhI,EAAU1gH,EAAQ4U,EACzBn3B,EAAGqmC,EAAGhlC,EACNs6H,EAAYhH,EAAYj1B,CAE5B,IAA4B,gBAAjB7/F,WAAU,IAAmBA,UAAU,GAAGmB,cAAgBnF,KAAKmF,YAAa,CAKrF,GAHAS,EAAQ5B,UAAU,GAClB0iB,EAAS0/G,EAAWQ,SAAS5iI,UAAU,IAEnC0iB,EAAS9gB,EAAMvB,OAASrE,KAAKqE,OAC/B,KAAM,IAAImgI,YAAW,8CAMvB,IAHA1E,EAAa9/H,KAAK8/H,WAAap5G,EAAS1mB,KAAKqnI,kBAC7CvO,EAAalzH,EAAMvB,OAASrE,KAAKqnI,kBAE7BzhI,EAAMgiB,SAAW5nB,KAAK4nB,OAAQ,CAEhC,IADAi8E,KACK1/F,EAAI,EAAGqmC,EAAI5kC,EAAMk6H,WAAgBhH,EAAJ30H,EAAgBA,GAAK,EAAGqmC,GAAK,EAC7Dq5D,EAAI1/F,GAAKyB,EAAMgiB,OAAO8/G,OAAOl9F,EAE/B,KAAKrmC,EAAI,EAAGqB,EAAIs6H,EAAgBhH,EAAJ30H,EAAgBA,GAAK,EAAGqB,GAAK,EACvDxF,KAAK4nB,OAAO8/G,OAAOliI,GAAKq+F,EAAI1/F,OAG9B,KAAKA,EAAI,EAAGqmC,EAAI5kC,EAAMk6H,WAAYt6H,EAAIs6H,EAC7BhH,EAAJ30H,EAAgBA,GAAK,EAAGqmC,GAAK,EAAGhlC,GAAK,EACxCxF,KAAK4nB,OAAO8/G,OAAOliI,GAAKI,EAAMgiB,OAAO8/G,OAAOl9F,OAG3C,CAAA,GAA4B,gBAAjBxmC,WAAU,IAAkD,mBAAxBA,WAAU,GAAGK,OAejE,KAAM,IAAI+W,WAAU,8BATpB,IAJAgsH,EAAWpjI,UAAU,GACrBs3B,EAAM8qG,EAAWQ,SAASQ,EAAS/iI,QACnCqiB,EAAS0/G,EAAWQ,SAAS5iI,UAAU,IAEnC0iB,EAAS4U,EAAMt7B,KAAKqE,OACtB,KAAM,IAAImgI,YAAW,8CAGvB,KAAKrgI,EAAI,EAAOm3B,EAAJn3B,EAASA,GAAK,EACxBqmC,EAAI48F,EAASjjI,GACbnE,KAAKskI,QAAQ59G,EAASviB,EAAGkoC,OAAO7B,MAQtC28F,EAAKtjI,UAAUuxB,SAAW,SAAShmB,EAAOtB,GACxC,QAASu7B,GAAMvpB,EAAG+Z,EAAK3kB,GAAO,MAAW2kB,GAAJ/Z,EAAU+Z,EAAM/Z,EAAI5K,EAAMA,EAAM4K,EAErE1Q,EAAQg3H,EAAWO,QAAQv3H,GAC3BtB,EAAMs4H,EAAWO,QAAQ74H,GAErB9J,UAAUK,OAAS,IAAK+K,EAAQ,GAChCpL,UAAUK,OAAS,IAAKyJ,EAAM9N,KAAKqE,QAE3B,EAAR+K,IAAaA,EAAQpP,KAAKqE,OAAS+K,GAC7B,EAANtB,IAAWA,EAAM9N,KAAKqE,OAASyJ,GAEnCsB,EAAQi6B,EAAMj6B,EAAO,EAAGpP,KAAKqE,QAC7ByJ,EAAMu7B,EAAMv7B,EAAK,EAAG9N,KAAKqE,OAEzB,IAAIi3B,GAAMxtB,EAAMsB,CAKhB,OAJU,GAANksB,IACFA,EAAM,GAGD,GAAIt7B,MAAKmF,YACdnF,KAAK4nB,OAAQ5nB,KAAK8/H,WAAa1wH,EAAQpP,KAAKqnI,kBAAmB/rG,IAG5D6rG,EAhPT,GAAI7pD,GAAc,SAAqBj5E,GAErC,GADAA,EAAS+hI,EAAWO,QAAQtiI,GACf,EAATA,EAAY,KAAM,IAAImgI,YAAW,0DAErCxkI,MAAK84H,WAAaz0H,EAClBrE,KAAK0nI,UACL1nI,KAAK0nI,OAAOrjI,OAASA,CAErB,IAAIF,EACJ,KAAKA,EAAI,EAAGA,EAAInE,KAAK84H,WAAY30H,GAAK,EACpCnE,KAAK0nI,OAAOvjI,GAAK,CAGnB0/H,GAAoB7jI,MAGtB0hC,GAAQ47C,YAAc57C,EAAQ47C,aAAeA,CAQ7C,IAAIgqD,GAAkB,aA2NlBhxC,EAAY0wC,EAAgB,EAAGpC,EAAQC,GACvCxjG,EAAa2lG,EAAgB,EAAGlC,EAAQC,GACxCvuC,EAAoBwwC,EAAgB,EAAGhC,EAAeD,GACtD4C,EAAaX,EAAgB,EAAG/B,EAASC,GACzCrjI,EAAcmlI,EAAgB,EAAG7B,EAASC,GAC1C3uC,EAAauwC,EAAgB,EAAG3B,EAASC,GACzCjoD,EAAc2pD,EAAgB,EAAGzB,EAASC,GAC1C5jI,EAAeolI,EAAgB,EAAGb,EAASD,GAC3C0B,EAAeZ,EAAgB,EAAGf,EAASD,EAE/CtkG,GAAQ40D,UAAY50D,EAAQ40D,WAAaA,EACzC50D,EAAQL,WAAaK,EAAQL,YAAcA,EAC3CK,EAAQ80D,kBAAoB90D,EAAQ80D,mBAAqBA,EACzD90D,EAAQimG,WAAajmG,EAAQimG,YAAcA,EAC3CjmG,EAAQ7/B,YAAc6/B,EAAQ7/B,aAAeA,EAC7C6/B,EAAQ+0D,WAAa/0D,EAAQ+0D,YAAcA,EAC3C/0D,EAAQ27C,YAAc37C,EAAQ27C,aAAeA,EAC7C37C,EAAQ9/B,aAAe8/B,EAAQ9/B,cAAgBA,EAC/C8/B,EAAQkmG,aAAelmG,EAAQkmG,cAAgBA,KAOhD,WACC,QAASj+G,GAAE/jB,EAAO+G,GAChB,MAAOy5H,GAAWM,WAAW9gI,EAAMyD,KAAOzD,EAAMyD,IAAIsD,GAAS/G,EAAM+G,GAwCrE,QAASk7H,GAAWC,GAClB,MAAO,UAAShI,EAAYrrC,GAI1B,GAFAqrC,EAAasG,EAAWQ,SAAS9G,GAE7BA,EAAagI,EAAUT,kBAAoBrnI,KAAK84H,WAClD,KAAM,IAAI0L,YAAW,2BAEvB1E,IAAc9/H,KAAK8/H,UAEnB,IACgB37H,GADZ4jI,EAAa,GAAI1mG,YAAWrhC,KAAK4nB,OAAQk4G,EAAYgI,EAAUT,mBAC/DrM,IACJ,KAAK72H,EAAI,EAAGA,EAAI2jI,EAAUT,kBAAmBljI,GAAK,EAChD62H,EAAM12H,KAAKqlB,EAAEo+G,EAAY5jI,GAO3B,OAJI6jI,SAAQvzC,KAAkBuzC,QAAQC,IACpCjN,EAAM9pG,UAGDvH,EAAE,GAAIm+G,GAAU,GAAIzmG,YAAW25F,GAAOpzG,QAAS,IAa1D,QAASsgH,GAAWJ,GAClB,MAAO,UAAShI,EAAYv2H,EAAOkrF,GAGjC,GADAqrC,EAAasG,EAAWQ,SAAS9G,GAC7BA,EAAagI,EAAUT,kBAAoBrnI,KAAK84H,WAClD,KAAM,IAAI0L,YAAW,2BAIvB,IAEgBrgI,GAAGgkI,EAFfC,EAAY,GAAIN,IAAWv+H,IAC3B84H,EAAY,GAAIhhG,YAAW+mG,EAAUxgH,QACrCozG,IAEJ,KAAK72H,EAAI,EAAGA,EAAI2jI,EAAUT,kBAAmBljI,GAAK,EAChD62H,EAAM12H,KAAKqlB,EAAE04G,EAAWl+H,GAItB6jI,SAAQvzC,KAAkBuzC,QAAQC,IACpCjN,EAAM9pG,UAIRi3G,EAAW,GAAI9mG,YAAWrhC,KAAK4nB,OAAQk4G,EAAYgI,EAAUT,mBAC7Dc,EAAS7+H,IAAI0xH,IA9FjB,GAAIiN,GAAiB,WACnB,GAAII,GAAW,GAAI3mG,GAAmB,aAAG,OACrC4mG,EAAU,GAAI5mG,GAAkB,WAAE2mG,EAASzgH,OAC/C,OAAyB,MAAlB+B,EAAE2+G,EAAS,MAOhB3F,EAAW,SAAkB/6G,EAAQk4G,EAAYhH,GACnD,GAAyB,IAArB90H,UAAUK,OACZujB,EAAS,GAAI01D,aAAY,OACpB,MAAM11D,YAAkB01D,cAA4C,gBAA7B8oD,EAAWG,MAAM3+G,IAC7D,KAAM,IAAIxM,WAAU,YAMtB,IAHApb,KAAK4nB,OAASA,GAAU,GAAI01D,aAAY,GAExCt9E,KAAK8/H,WAAasG,EAAWQ,SAAS9G,GAClC9/H,KAAK8/H,WAAa9/H,KAAK4nB,OAAOkxG,WAChC,KAAM,IAAI0L,YAAW,0BASvB,IALExkI,KAAK84H,WADH90H,UAAUK,OAAS,EACHrE,KAAK4nB,OAAOkxG,WAAa94H,KAAK8/H,WAE9BsG,EAAWQ,SAAS9N,GAGnC94H,KAAK8/H,WAAa9/H,KAAK84H,WAAc94H,KAAK4nB,OAAOkxG,WACpD,KAAM,IAAI0L,YAAW,uEAGvBX,GAAoB7jI,MA2BtB2iI,GAAS9+H,UAAU+5H,SAAWiK,EAAWnmG,EAAQL,YACjDshG,EAAS9+H,UAAU04H,QAAUsL,EAAWnmG,EAAQ40D,WAChDqsC,EAAS9+H,UAAUi4H,UAAY+L,EAAWnmG,EAAQ7/B,aAClD8gI,EAAS9+H,UAAU44H,SAAWoL,EAAWnmG,EAAQimG,YACjDhF,EAAS9+H,UAAUs4H,UAAY0L,EAAWnmG,EAAQ27C,aAClDslD,EAAS9+H,UAAUg5H,SAAWgL,EAAWnmG,EAAQ+0D,YACjDksC,EAAS9+H,UAAUo5H,WAAa4K,EAAWnmG,EAAQ9/B,cACnD+gI,EAAS9+H,UAAUw5H,WAAawK,EAAWnmG,EAAQkmG,cA8BnDjF,EAAS9+H,UAAUg4H,SAAWqM,EAAWxmG,EAAQL,YACjDshG,EAAS9+H,UAAUw6H,QAAU6J,EAAWxmG,EAAQ40D,WAChDqsC,EAAS9+H,UAAU85H,UAAYuK,EAAWxmG,EAAQ7/B,aAClD8gI,EAAS9+H,UAAU06H,SAAW2J,EAAWxmG,EAAQimG,YACjDhF,EAAS9+H,UAAUm6H,UAAYkK,EAAWxmG,EAAQ27C,aAClDslD,EAAS9+H,UAAU86H,SAAWuJ,EAAWxmG,EAAQ+0D,YACjDksC,EAAS9+H,UAAUm7H,WAAakJ,EAAWxmG,EAAQ9/B,cACnD+gI,EAAS9+H,UAAUu7H,WAAa8I,EAAWxmG,EAAQkmG,cAEnDlmG,EAAQihG,SAAWjhG,EAAQihG,UAAYA,kBAKvChhG,EAAOD,QAAQy0D,EAAQ,4BAA4BsiC,YAE/C8P,GAAG,SAASpyC,EAAQx0D,GAG1B,GAAIu0D,GAAUv0D,EAAOD,UAErBw0D,GAAQyQ,SAAW,WACf,GAAI6hC,GAAoC,mBAAX9kI,SAC1BA,OAAO+kI,aACNC,EAA4B,mBAAXhlI,SAClBA,OAAOilI,aAAejlI,OAAOkZ,gBAGhC,IAAI4rH,EACA,MAAO,UAAU7iG,GAAK,MAAOjiC,QAAO+kI,aAAa9iG,GAGrD,IAAI+iG,EAAS,CACT,GAAIE,KAWJ,OAVAllI,QAAOkZ,iBAAiB,UAAW,SAAUisH,GACzC,GAAIA,EAAGh3H,SAAWnO,QAAsB,iBAAZmlI,EAAGjyH,OAC3BiyH,EAAGprH,kBACCmrH,EAAMvkI,OAAS,GAAG,CAClB,GAAIoY,GAAKmsH,EAAMr/D,OACf9sD,QAGT,GAEI,SAAkBA,GACrBmsH,EAAMtkI,KAAKmY,GACX/Y,OAAOilI,YAAY,eAAgB,MAI3C,MAAO,UAAkBlsH,GACrB/B,WAAW+B,EAAI,OAIvBy5E,EAAQ4yC,MAAQ,UAChB5yC,EAAQ6yC,SAAU,EAClB7yC,EAAQ8yC,OACR9yC,EAAQ+yC,QAER/yC,EAAQx8C,QAAU,WACd,KAAM,IAAI5sC,OAAM,qCAIpBopF,EAAQgzC,IAAM,WAAc,MAAO,KACnChzC,EAAQizC,MAAQ,WACZ,KAAM,IAAIr8H,OAAM,wCAGdq2H,GAAG,SAAShtC,EAAQx0D,GAS1B,QAASiL,MART,GAAwRw8F,IAA5QjzC,EAAQ,wBAAuHA,EAAQ,uBAA8IA,EAAQ,YAEzSx0D,GAAOD,QAAUkL,EAiBjBA,EAAKy8F,QAAU,SAASC,EAAGC,EAAGC,GAC1BA,EAAYA,GAAa,CACzB,IACI/iI,GAAIK,EAAIJ,EAAI8lB,EAAIC,EAAIC,EAAI+8G,EADxBtlI,GAAK,EAAE,EAaX,OAXAsC,GAAK6iI,EAAG,GAAG,GAAKA,EAAG,GAAG,GACtBxiI,EAAKwiI,EAAG,GAAG,GAAKA,EAAG,GAAG,GACtB5iI,EAAKD,EAAK6iI,EAAG,GAAG,GAAKxiI,EAAKwiI,EAAG,GAAG,GAChC98G,EAAK+8G,EAAG,GAAG,GAAKA,EAAG,GAAG,GACtB98G,EAAK88G,EAAG,GAAG,GAAKA,EAAG,GAAG,GACtB78G,EAAKF,EAAK+8G,EAAG,GAAG,GAAK98G,EAAK88G,EAAG,GAAG,GAChCE,EAAMhjI,EAAKgmB,EAAKD,EAAG1lB,EACdsiI,EAAOM,GAAGD,EAAK,EAAGD,KACnBrlI,EAAE,IAAMsoB,EAAK/lB,EAAKI,EAAK4lB,GAAM+8G,EAC7BtlI,EAAE,IAAMsC,EAAKimB,EAAKF,EAAK9lB,GAAM+iI,GAE1BtlI,GAYXyoC,EAAK+8F,kBAAoB,SAASj7F,EAAIC,EAAIi7F,EAAIC,GAC3C,GAAIv4H,GAAKq9B,EAAG,GAAKD,EAAG,GAChBl9B,EAAKm9B,EAAG,GAAKD,EAAG,GAChBo7F,EAAKD,EAAG,GAAKD,EAAG,GAChBG,EAAKF,EAAG,GAAKD,EAAG,EAGpB,IAAGE,EAAGt4H,EAAKu4H,EAAGz4H,GAAM,EACjB,OAAO,CAEV,IAAIk5B,IAAKl5B,GAAMs4H,EAAG,GAAKl7F,EAAG,IAAMl9B,GAAMk9B,EAAG,GAAKk7F,EAAG,MAAQE,EAAKt4H,EAAKu4H,EAAKz4H,GACpEkmF,GAAKsyC,GAAMp7F,EAAG,GAAKk7F,EAAG,IAAMG,GAAMH,EAAG,GAAKl7F,EAAG,MAAQq7F,EAAKz4H,EAAKw4H,EAAKt4H,EAExE,OAAQg5B,IAAG,GAAQ,GAAHA,GAAQgtD,GAAG,GAAQ,GAAHA,KAIhCwyC,WAAW,EAAEC,oBAAsB,EAAEC,qBAAuB,IAAItG,GAAG,SAASztC,EAAQx0D,GAOvF,QAAS19B,MANGkyF,EAAQ,wBAAuHA,EAAQ,sBAAkIx0D,GAAOD,QAAUz9B,EAiBtSA,EAAMkqC,KAAO,SAAS9oC,EAAEC,EAAEC,GACtB,OAAUD,EAAE,GAAKD,EAAE,KAAKE,EAAE,GAAKF,EAAE,KAAOE,EAAE,GAAKF,EAAE,KAAKC,EAAE,GAAKD,EAAE,KAGnEpB,EAAMkiC,KAAO,SAAS9gC,EAAEC,EAAEC,GACtB,MAAOtB,GAAMkqC,KAAK9oC,EAAEC,EAAEC,GAAK,GAG/BtB,EAAMkmI,OAAS,SAAS9kI,EAAEC,EAAEC,GACxB,MAAOtB,GAAMkqC,KAAK9oC,EAAGC,EAAGC,IAAM,GAGlCtB,EAAMiiC,MAAQ,SAAS7gC,EAAEC,EAAEC,GACvB,MAAOtB,GAAMkqC,KAAK9oC,EAAGC,EAAGC,GAAK,GAGjCtB,EAAMmmI,QAAU,SAAS/kI,EAAEC,EAAEC,GACzB,MAAOtB,GAAMkqC,KAAK9oC,EAAGC,EAAGC,IAAM,EAGlC,IAAI8kI,MACAC,IAWJrmI,GAAMsmI,UAAY,SAASllI,EAAEC,EAAEC,EAAEilI,GAC7B,GAAIA,EAEC,CACD,GAAIh/C,GAAK6+C,EACLI,EAAKH,CAET9+C,GAAG,GAAKlmF,EAAE,GAAGD,EAAE,GACfmmF,EAAG,GAAKlmF,EAAE,GAAGD,EAAE,GACfolI,EAAG,GAAKllI,EAAE,GAAGD,EAAE,GACfmlI,EAAG,GAAKllI,EAAE,GAAGD,EAAE,EAEf,IAAI2kC,GAAMuhD,EAAG,GAAGi/C,EAAG,GAAKj/C,EAAG,GAAGi/C,EAAG,GAC7BC,EAAOxoI,KAAKgrB,KAAKs+D,EAAG,GAAGA,EAAG,GAAKA,EAAG,GAAGA,EAAG,IACxCm/C,EAAOzoI,KAAKgrB,KAAKu9G,EAAG,GAAGA,EAAG,GAAKA,EAAG,GAAGA,EAAG,IACxCnkI,EAAQpE,KAAK0oI,KAAK3gG,GAAKygG,EAAKC,GAChC,OAAeH,GAARlkI,EAdP,MAA8B,IAAvBrC,EAAMkqC,KAAK9oC,EAAGC,EAAGC,IAkBhCtB,EAAM4mI,OAAS,SAASxlI,EAAEC,GACtB,GAAIgM,GAAKhM,EAAE,GAAKD,EAAE,GACdmM,EAAKlM,EAAE,GAAKD,EAAE,EAClB,OAAOiM,GAAKA,EAAKE,EAAKA,KAGvBy4H,oBAAsB,EAAEC,qBAAuB,IAAIY,GAAG,SAAS30C,EAAQx0D,GAY1E,QAASh+B,KAOL3D,KAAKmzB,YAiST,QAAS43G,GAAqBr8F,EAAIC,EAAIi7F,EAAIC,EAAIjtG,GAC1CA,EAAQA,GAAS,CAClB,IAAIn2B,GAAKkoC,EAAG,GAAKD,EAAG,GAChB5nC,EAAK4nC,EAAG,GAAKC,EAAG,GAChBjoC,EAAMD,EAAKioC,EAAG,GAAO5nC,EAAK4nC,EAAG,GAC7BliB,EAAKq9G,EAAG,GAAKD,EAAG,GAChBn9G,EAAKm9G,EAAG,GAAKC,EAAG,GAChBn9G,EAAMF,EAAKo9G,EAAG,GAAOn9G,EAAKm9G,EAAG,GAC7BH,EAAOhjI,EAAKgmB,EAAOD,EAAK1lB,CAE5B,OAAIsiI,GAAOM,GAAGD,EAAI,EAAE7sG,IAGT,EAAE,KAFAnQ,EAAK/lB,EAAOI,EAAK4lB,GAAO+8G,GAAOhjI,EAAKimB,EAAOF,EAAK9lB,GAAO+iI,GA9TvE,GAA2R78F,IAA/QupD,EAAQ,wBAAuHA,EAAQ,uBAA+IA,EAAQ,WACtSlyF,EAAQkyF,EAAQ,WAChBizC,EAASjzC,EAAQ,WAErBx0D,GAAOD,QAAU/9B,EAuBjBA,EAAQE,UAAUwpH,GAAK,SAASlpH,GAC5B,GAAI2b,GAAI9f,KAAKmzB,SACTqX,EAAI1qB,EAAEzb,MACV,OAAOyb,GAAM,EAAJ3b,EAAQA,EAAIqmC,EAAIA,EAAIrmC,EAAIqmC,IAQrC7mC,EAAQE,UAAUu0C,MAAQ,WACtB,MAAOp4C,MAAKmzB,SAAS,IAQzBxvB,EAAQE,UAAU2gC,KAAO,WACrB,MAAOxkC,MAAKmzB,SAASnzB,KAAKmzB,SAAS9uB,OAAO,IAQ9CV,EAAQE,UAAUisB,MAAQ,WACtB9vB,KAAKmzB,SAAS9uB,OAAS,GAW3BV,EAAQE,UAAU+C,OAAS,SAASokI,EAAK3/H,EAAKu7B,GAC1C,GAAmB,mBAAV,GAAuB,KAAM,IAAI95B,OAAM,qBAChD,IAAiB,mBAAR,GAAuB,KAAM,IAAIA,OAAM,mBAEhD,IAAUzB,EAAPu7B,EAAG,EAA0B,KAAM,IAAI95B,OAAM,OAChD,IAAG85B,EAAKokG,EAAK73G,SAAS9uB,OAAU,KAAM,IAAIyI,OAAM,OAChD,IAAU,EAAPzB,EAA6B,KAAM,IAAIyB,OAAM,OAEhD,KAAI,GAAI3I,GAAEkH,EAAQu7B,EAAFziC,EAAMA,IAClBnE,KAAKmzB,SAAS7uB,KAAK0mI,EAAK73G,SAAShvB,KAQzCR,EAAQE,UAAUonI,QAAU,WAKxB,IAAK,GAJDC,GAAK,EACLprH,EAAI9f,KAAKmzB,SAGJhvB,EAAI,EAAGA,EAAInE,KAAKmzB,SAAS9uB,SAAUF,GACpC2b,EAAE3b,GAAG,GAAK2b,EAAEorH,GAAI,IAAOprH,EAAE3b,GAAG,IAAM2b,EAAEorH,GAAI,IAAMprH,EAAE3b,GAAG,GAAK2b,EAAEorH,GAAI,MAC9DA,EAAK/mI,EAKRF,GAAMkiC,KAAKnmC,KAAKqtH,GAAG6d,EAAK,GAAIlrI,KAAKqtH,GAAG6d,GAAKlrI,KAAKqtH,GAAG6d,EAAK,KACvDlrI,KAAKkxB,WAQbvtB,EAAQE,UAAUqtB,QAAU,WAExB,IAAI,GADA2yE,MACI1/F,EAAE,EAAG26D,EAAE9+D,KAAKmzB,SAAS9uB,OAAQF,IAAI26D,EAAG36D,IACxC0/F,EAAIv/F,KAAKtE,KAAKmzB,SAASra,MAE3B9Y,MAAKmzB,SAAW0wE,GASpBlgG,EAAQE,UAAUsnI,SAAW,SAAShnI,GAClC,MAAOF,GAAMiiC,MAAMlmC,KAAKqtH,GAAGlpH,EAAI,GAAInE,KAAKqtH,GAAGlpH,GAAInE,KAAKqtH,GAAGlpH,EAAI,IAG/D,IAAIinI,MACAC,IASJ1nI,GAAQE,UAAUynI,OAAS,SAASjmI,EAAEC,GAClC,GAAIpB,GAAG2oB,EAAMy8G,EAAG8B,EAAU7B,EAAG8B,CAE7B,IAAIpnI,EAAMkmI,OAAOnqI,KAAKqtH,GAAGhoH,EAAI,GAAIrF,KAAKqtH,GAAGhoH,GAAIrF,KAAKqtH,GAAG/nH,KAAOrB,EAAMmmI,QAAQpqI,KAAKqtH,GAAGhoH,EAAI,GAAIrF,KAAKqtH,GAAGhoH,GAAIrF,KAAKqtH,GAAG/nH,IAC1G,OAAO,CAEXunB,GAAO5oB,EAAM4mI,OAAO7qI,KAAKqtH,GAAGhoH,GAAIrF,KAAKqtH,GAAG/nH,GACxC,KAAK,GAAInB,GAAI,EAAGA,IAAMnE,KAAKmzB,SAAS9uB,SAAUF,EAC1C,IAAKA,EAAI,GAAKnE,KAAKmzB,SAAS9uB,SAAWgB,GAAKlB,IAAMkB,GAE9CpB,EAAMkmI,OAAOnqI,KAAKqtH,GAAGhoH,GAAIrF,KAAKqtH,GAAG/nH,GAAItF,KAAKqtH,GAAGlpH,EAAI,KAAOF,EAAMmmI,QAAQpqI,KAAKqtH,GAAGhoH,GAAIrF,KAAKqtH,GAAG/nH,GAAItF,KAAKqtH,GAAGlpH,MACtGmlI,EAAG,GAAKtpI,KAAKqtH,GAAGhoH,GAChBikI,EAAG,GAAKtpI,KAAKqtH,GAAG/nH,GAChBikI,EAAG,GAAKvpI,KAAKqtH,GAAGlpH,GAChBolI,EAAG,GAAKvpI,KAAKqtH,GAAGlpH,EAAI,GACpBD,EAAI0oC,EAAKy8F,QAAQC,EAAGC,GAChBtlI,EAAM4mI,OAAO7qI,KAAKqtH,GAAGhoH,GAAInB,GAAK2oB,GAC9B,OAAO,CAKnB,QAAO,GAWXlpB,EAAQE,UAAU2iC,KAAO,SAASriC,EAAEU,EAAE0mI,GAClC,GAAIrnI,GAAIqnI,GAAc,GAAI5nI,EAE1B,IADAO,EAAE4rB,QACMjrB,EAAJV,EAEA,IAAI,GAAI6qE,GAAE7qE,EAAMU,GAAHmqE,EAAMA,IACf9qE,EAAEivB,SAAS7uB,KAAKtE,KAAKmzB,SAAS67C,QAE/B,CAGH,IAAI,GAAIA,GAAE,EAAMnqE,GAAHmqE,EAAMA,IACf9qE,EAAEivB,SAAS7uB,KAAKtE,KAAKmzB,SAAS67C,GAGlC,KAAI,GAAIA,GAAE7qE,EAAG6qE,EAAEhvE,KAAKmzB,SAAS9uB,OAAQ2qE,IACjC9qE,EAAEivB,SAAS7uB,KAAKtE,KAAKmzB,SAAS67C,IAGtC,MAAO9qE,IASXP,EAAQE,UAAU2nI,YAAc,WAI5B,IAAK,GAHD3xG,MAAQ4xG,KAASC,KAASC,EAAU,GAAIhoI,GACxCioI,EAASv/F,OAAOG,UAEXroC,EAAI,EAAGA,EAAInE,KAAKmzB,SAAS9uB,SAAUF,EACxC,GAAInE,KAAKmrI,SAAShnI,GACd,IAAK,GAAIU,GAAI,EAAGA,EAAI7E,KAAKmzB,SAAS9uB,SAAUQ,EACxC,GAAI7E,KAAKsrI,OAAOnnI,EAAGU,GAAI,CACnB4mI,EAAOzrI,KAAKwmC,KAAKriC,EAAGU,EAAG8mI,GAASH,cAChCE,EAAO1rI,KAAKwmC,KAAK3hC,EAAGV,EAAGwnI,GAASH,aAEhC;IAAI,GAAIx8D,GAAE,EAAGA,EAAE08D,EAAKrnI,OAAQ2qE,IACxBy8D,EAAKnnI,KAAKonI,EAAK18D,GAEfy8D,GAAKpnI,OAASunI,IACd/xG,EAAM4xG,EACNG,EAASH,EAAKpnI,OACdw1B,EAAIv1B,MAAMtE,KAAKqtH,GAAGlpH,GAAInE,KAAKqtH,GAAGxoH,MAOlD,MAAOg1B,IAQXl2B,EAAQE,UAAUgoI,OAAS,WACvB,GAAIC,GAAQ9rI,KAAKwrI,aACjB,OAAGM,GAAMznI,OAAS,EACPrE,KAAK8D,MAAMgoI,IAEV9rI,OAShB2D,EAAQE,UAAUC,MAAQ,SAASioI,GAC/B,GAAsB,GAAnBA,EAAS1nI,OAAa,OAAQrE,KACjC,IAAG+rI,YAAoBjqI,QAASiqI,EAAS1nI,QAAU0nI,EAAS,YAAcjqI,QAA6B,GAApBiqI,EAAS,GAAG1nI,QAAa0nI,EAAS,GAAG,YAAcjqI,OAAM,CAIxI,IAAI,GAFAkqI,IAAShsI,MAELmE,EAAE,EAAGA,EAAE4nI,EAAS1nI,OAAQF,IAG5B,IAAI,GAFA8nI,GAAUF,EAAS5nI,GAEfU,EAAE,EAAGA,EAAEmnI,EAAM3nI,OAAQQ,IAAI,CAC7B,GAAImmI,GAAOgB,EAAMnnI,GACboS,EAAS+zH,EAAKlnI,MAAMmoI,EACxB,IAAGh1H,EAAO,CAEN+0H,EAAMn/H,OAAOhI,EAAE,GACfmnI,EAAM1nI,KAAK2S,EAAO,GAAGA,EAAO,GAC5B,QAKZ,MAAO+0H,GAIP,GAAIC,GAAUF,EACV5nI,EAAInE,KAAKmzB,SAAS9vB,QAAQ4oI,EAAQ,IAClCpnI,EAAI7E,KAAKmzB,SAAS9vB,QAAQ4oI,EAAQ,GAEtC,OAAQ,IAAL9nI,GAAgB,IAALU,GACF7E,KAAKwmC,KAAKriC,EAAEU,GACZ7E,KAAKwmC,KAAK3hC,EAAEV,KAEb,GAYnBR,EAAQE,UAAUqoI,SAAW,WAGzB,IAAI,GAFAr6F,GAAO7xC,KAAKmzB,SAERhvB,EAAE,EAAGA,EAAE0tC,EAAKxtC,OAAO,EAAGF,IAC1B,IAAI,GAAIU,GAAE,EAAKV,EAAE,EAAJU,EAAOA,IAChB,GAAG+nC,EAAK+8F,kBAAkB93F,EAAK1tC,GAAI0tC,EAAK1tC,EAAE,GAAI0tC,EAAKhtC,GAAIgtC,EAAKhtC,EAAE,IAC1D,OAAO,CAMnB,KAAI,GAAIV,GAAE,EAAGA,EAAE0tC,EAAKxtC,OAAO,EAAGF,IAC1B,GAAGyoC,EAAK+8F,kBAAkB93F,EAAK,GAAIA,EAAKA,EAAKxtC,OAAO,GAAIwtC,EAAK1tC,GAAI0tC,EAAK1tC,EAAE,IACpE,OAAO,CAIf,QAAO,GA8BXR,EAAQE,UAAUsoI,YAAc,SAASl1H,EAAOm1H,EAAeC,EAAczvG,EAAM0vG,EAAS/6G,GACxF+6G,EAAWA,GAAY,IACvB/6G,EAAQA,GAAS,EACjBqL,EAAQA,GAAS,GACjB3lB,EAAyB,mBAAV,GAAwBA,KACvCm1H,EAAiBA,MACjBC,EAAgBA,KAEhB,IAAIE,IAAU,EAAE,GAAIC,GAAU,EAAE,GAAItoI,GAAG,EAAE,GACrCuoI,EAAU,EAAGC,EAAU,EAAGlnI,EAAE,EAAGmnI,EAAY,EAC3CC,EAAW,EAAGC,EAAW,EAAGC,EAAa,EACzCC,EAAU,GAAIppI,GAAWqpI,EAAU,GAAIrpI,GACvCqnI,EAAOhrI,KACP8f,EAAI9f,KAAKmzB,QAEb,IAAGrT,EAAEzb,OAAS,EAAG,MAAO4S,EAGxB,IADAsa,IACGA,EAAQ+6G,EAEP,MADA/oI,SAAQo0C,KAAK,2BAA2B20F,EAAS,cAC1Cr1H,CAGX,KAAK,GAAI9S,GAAI,EAAGA,EAAInE,KAAKmzB,SAAS9uB,SAAUF,EACxC,GAAI6mI,EAAKG,SAAShnI,GAAI,CAClBioI,EAAe9nI,KAAK0mI,EAAK73G,SAAShvB,IAClCsoI,EAAYC,EAAYrgG,OAAOG,SAG/B,KAAK,GAAI3nC,GAAI,EAAGA,EAAI7E,KAAKmzB,SAAS9uB,SAAUQ,EACpCZ,EAAMkiC,KAAK6kG,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAI6mI,EAAK3d,GAAGxoH,KACxCZ,EAAMmmI,QAAQY,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAI6mI,EAAK3d,GAAGxoH,EAAI,MAC7DX,EAAI6mI,EAAqBC,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAI6mI,EAAK3d,GAAGxoH,GAAImmI,EAAK3d,GAAGxoH,EAAI,IACzEZ,EAAMiiC,MAAM8kG,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAID,KACxCsB,EAAIvB,EAAM4mI,OAAOG,EAAK73G,SAAShvB,GAAID,GAC3BwoI,EAAJlnI,IACAknI,EAAYlnI,EACZgnI,EAAWtoI,EACX2oI,EAAahoI,KAIrBZ,EAAMkiC,KAAK6kG,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAI6mI,EAAK3d,GAAGxoH,EAAI,KAC5CZ,EAAMmmI,QAAQY,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAI6mI,EAAK3d,GAAGxoH,MACzDX,EAAI6mI,EAAqBC,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAI6mI,EAAK3d,GAAGxoH,GAAImmI,EAAK3d,GAAGxoH,EAAI,IACzEZ,EAAMkiC,KAAK6kG,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAID,KACvCsB,EAAIvB,EAAM4mI,OAAOG,EAAK73G,SAAShvB,GAAID,GAC3BuoI,EAAJjnI,IACAinI,EAAYjnI,EACZ+mI,EAAWroI,EACX0oI,EAAa/nI,IAO7B,IAAIgoI,IAAeD,EAAa,GAAK5sI,KAAKmzB,SAAS9uB,OAE/CH,EAAE,IAAMsoI,EAAS,GAAKD,EAAS,IAAM,EACrCroI,EAAE,IAAMsoI,EAAS,GAAKD,EAAS,IAAM,EACrCF,EAAc/nI,KAAKJ,GAEX0oI,EAAJzoI,GAEA4oI,EAAUnmI,OAAOokI,EAAM7mI,EAAGyoI,EAAW,GACrCG,EAAU55G,SAAS7uB,KAAKJ,GACxB8oI,EAAU75G,SAAS7uB,KAAKJ,GACN,GAAd2oI,GAEAG,EAAUpmI,OAAOokI,EAAK6B,EAAW7B,EAAK73G,SAAS9uB,QAGnD2oI,EAAUpmI,OAAOokI,EAAK,EAAE7mI,EAAE,KAEjB,GAALA,GAEA4oI,EAAUnmI,OAAOokI,EAAK7mI,EAAE6mI,EAAK73G,SAAS9uB,QAG1C0oI,EAAUnmI,OAAOokI,EAAK,EAAE4B,EAAW,GACnCG,EAAU55G,SAAS7uB,KAAKJ,GACxB8oI,EAAU75G,SAAS7uB,KAAKJ,GAExB8oI,EAAUpmI,OAAOokI,EAAK6B,EAAW1oI,EAAE,QAEpC,CASH,GALI0oI,EAAaD,IACbA,GAAc5sI,KAAKmzB,SAAS9uB,QAEhCsoI,EAActgG,OAAOG,UAELqgG,EAAbD,EACC,MAAO31H,EAGX,KAAK,GAAIpS,GAAIgoI,EAAiBD,GAAL/nI,IAAmBA,EACpCZ,EAAMkmI,OAAOa,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAI6mI,EAAK3d,GAAGxoH,KAC1CZ,EAAMmmI,QAAQY,EAAK3d,GAAGlpH,EAAI,GAAI6mI,EAAK3d,GAAGlpH,GAAI6mI,EAAK3d,GAAGxoH,MACzDW,EAAIvB,EAAM4mI,OAAOG,EAAK3d,GAAGlpH,GAAI6mI,EAAK3d,GAAGxoH,IAC7B8nI,EAAJnnI,IACAmnI,EAAcnnI,EACdsnI,EAAejoI,EAAI7E,KAAKmzB,SAAS9uB,QAKrCyoI,GAAJ3oI,GACA4oI,EAAUnmI,OAAOokI,EAAK7mI,EAAE2oI,EAAa,GACjB,GAAhBA,GACAE,EAAUpmI,OAAOokI,EAAK8B,EAAahtH,EAAEzb,QAEzC2oI,EAAUpmI,OAAOokI,EAAK,EAAE7mI,EAAE,KAEjB,GAALA,GACA4oI,EAAUnmI,OAAOokI,EAAK7mI,EAAE2b,EAAEzb,QAE9B0oI,EAAUnmI,OAAOokI,EAAK,EAAE8B,EAAa,GACrCE,EAAUpmI,OAAOokI,EAAK8B,EAAa3oI,EAAE,IAa7C,MARI4oI,GAAU55G,SAAS9uB,OAAS2oI,EAAU75G,SAAS9uB,QAC/C0oI,EAAUZ,YAAYl1H,EAAOm1H,EAAeC,EAAczvG,EAAM0vG,EAAS/6G,GACzEy7G,EAAUb,YAAYl1H,EAAOm1H,EAAeC,EAAczvG,EAAM0vG,EAAS/6G,KAEzEy7G,EAAUb,YAAYl1H,EAAOm1H,EAAeC,EAAczvG,EAAM0vG,EAAS/6G,GACzEw7G,EAAUZ,YAAYl1H,EAAOm1H,EAAeC,EAAczvG,EAAM0vG,EAAS/6G,IAGtEta,EAKf,MAFAA,GAAO3S,KAAKtE,MAELiX,GASXtT,EAAQE,UAAUopI,sBAAwB,SAASzD,GAE/C,IAAI,GADA3rG,GAAM,EACF15B,EAAEnE,KAAKmzB,SAAS9uB,OAAO,EAAGrE,KAAKmzB,SAAS9uB,OAAO,GAAKF,GAAG,IAAKA,EAC7DF,EAAMsmI,UAAUvqI,KAAKqtH,GAAGlpH,EAAE,GAAGnE,KAAKqtH,GAAGlpH,GAAGnE,KAAKqtH,GAAGlpH,EAAE,GAAGqlI,KAEpDxpI,KAAKmzB,SAAStmB,OAAO1I,EAAEnE,KAAKmzB,SAAS9uB,OAAO,GAC5CF,IACA05B,IAGR,OAAOA,MAGRqvG,SAAS,EAAEC,UAAU,EAAEnD,WAAW,EAAEC,oBAAsB,EAAEC,qBAAuB,IAAIkD,GAAG,SAASj3C,EAAQx0D,GAO9G,QAASynG,MANGjzC,EAAQ,wBAAuHA,EAAQ,sBAAmIx0D,GAAOD,QAAU0nG,EAiBvSA,EAAOM,GAAK,SAASrkI,EAAEC,EAAEkkI,GAErB,MADAA,GAAYA,GAAa,EAClBtnI,KAAKirB,IAAI9nB,EAAEC,GAAKkkI,KAGxBS,oBAAsB,EAAEC,qBAAuB,IAAImD,GAAG,SAASl3C,EAAQx0D,GAC9Dw0D,EAAQ,wBAAuHA,EAAQ,sBAAkIx0D,GAAOD,SACxR/9B,QAAUwyF,EAAQ,aAClBlyF,MAAQkyF,EAAQ,cAGjBg3C,UAAU,EAAEG,YAAY,EAAErD,oBAAsB,EAAEC,qBAAuB,IAAIqD,GAAG,SAASp3C,EAAQx0D,GACxFw0D,EAAQ,wBAAuHA,EAAQ,sBAAsEx0D,GAAOD,SAC9NrkB,KAAQ,KACR0wG,QAAW,QACXyf,YAAe,kCACfC,OAAU,wDACVC,UACE,QACA,KACA,UACA,SACA,MAEFC,KAAQ,cACRC,SACE37C,KAAQ,KAEV47C,YACE5qI,KAAQ,MACR88F,IAAO,yCAET+tC,MACE/tC,IAAO,4CAETguC,WAEI9qI,KAAQ,QAGZ+qI,iBACEC,MAAS,SACTC,uBAAwB,SACxBC,yBAA0B,SAC1BC,uBAAwB,SACxBC,sBAAuB,SACvBC,mBAAoB,SACpBC,uBAAwB,UAE1BC,cACEC,cAAe,YAIhBxE,oBAAsB,EAAEC,qBAAuB,IAAIwE,GAAG,SAASv4C,EAAQx0D,GAc1E,QAASgtG,GAAKhhH,GAOV3tB,KAAK4uI,WAAaC,EAAKxiI,SACpBshB,GAAWA,EAAQihH,YAClBC,EAAKroG,KAAKxmC,KAAK4uI,WAAYjhH,EAAQihH,YAQvC5uI,KAAK8uI,WAAaD,EAAKxiI,SACpBshB,GAAWA,EAAQmhH,YAClBD,EAAKroG,KAAKxmC,KAAK8uI,WAAYnhH,EAAQmhH,YAhC3C,CAAA,GAAsOD,IAA1N14C,EAAQ,wBAAuHA,EAAQ,uBAA0FA,EAAQ,gBACzOA,GAAQ,kBAEpBx0D,EAAOD,QAAUitG,CAiCjB,IAAI9qC,GAAMgrC,EAAKxiI,QAOfsiI,GAAK9qI,UAAUkrI,cAAgB,SAASnrI,EAAQ+D,EAAUrB,EAAO0oI,GAC7D,GAAIvqG,GAAIzkC,KAAK4uI,WACT/uH,EAAI7f,KAAK8uI,UAEQ,iBAAZ,KACLxoI,EAAQ,GAIC,IAAVA,EACCuoI,EAAKxoI,OAAOo+B,EAAG7gC,EAAO,GAAI0C,GAE1BuoI,EAAKroG,KAAK/B,EAAG7gC,EAAO,IAExBirI,EAAKroG,KAAK3mB,EAAG4kB,EAKb,KAAI,GAFAwqG,GAAW/sI,KAAKqE,IAAID,GACpB4oI,EAAWhtI,KAAKsE,IAAIF,GAChBnC,EAAI,EAAGA,EAAEP,EAAOS,OAAQF,IAAI,CAChC,GAAID,GAAIN,EAAOO,EAEf,IAAa,IAAVmC,EAAY,CACX,GAAI/B,GAAIL,EAAE,GACNM,EAAIN,EAAE,EACV2/F,GAAI,GAAKorC,EAAW1qI,EAAG2qI,EAAW1qI,EAClCq/F,EAAI,GAAKqrC,EAAW3qI,EAAG0qI,EAAWzqI,EAClCN,EAAI2/F,EAGR,IAAI,GAAIh/F,GAAE,EAAK,EAAFA,EAAKA,IACXX,EAAEW,GAAKgb,EAAEhb,KACRgb,EAAEhb,GAAKX,EAAEW,IAEVX,EAAEW,GAAK4/B,EAAE5/B,KACR4/B,EAAE5/B,GAAKX,EAAEW,IAMlB8C,IACCknI,EAAK7lG,IAAIhpC,KAAK4uI,WAAY5uI,KAAK4uI,WAAYjnI,GAC3CknI,EAAK7lG,IAAIhpC,KAAK8uI,WAAY9uI,KAAK8uI,WAAYnnI,IAG5CqnI,IACChvI,KAAK4uI,WAAW,IAAMI,EACtBhvI,KAAK4uI,WAAW,IAAMI,EACtBhvI,KAAK8uI,WAAW,IAAME,EACtBhvI,KAAK8uI,WAAW,IAAME,IAS9BL,EAAK9qI,UAAU2iC,KAAO,SAAS2F,GAC3B0iG,EAAKroG,KAAKxmC,KAAK4uI,WAAYziG,EAAKyiG,YAChCC,EAAKroG,KAAKxmC,KAAK8uI,WAAY3iG,EAAK2iG,aAQpCH,EAAK9qI,UAAU0iC,OAAS,SAAS4F,GAG7B,IADA,GAAIhoC,GAAI,EACFA,KAAI,CAEN,GAAIsgC,GAAI0H,EAAKyiG,WAAWzqI,EACrBnE,MAAK4uI,WAAWzqI,GAAKsgC,IACpBzkC,KAAK4uI,WAAWzqI,GAAKsgC,EAIzB,IAAI5kB,GAAIssB,EAAK2iG,WAAW3qI,EACrBnE,MAAK8uI,WAAW3qI,GAAK0b,IACpB7f,KAAK8uI,WAAW3qI,GAAK0b,KAWjC8uH,EAAK9qI,UAAUsrI,SAAW,SAAShjG,GAC/B,GAAIm9F,GAAKtpI,KAAK4uI,WACVryG,EAAKv8B,KAAK8uI,WACVvF,EAAKp9F,EAAKyiG,WACVpyG,EAAK2P,EAAK2iG,UAOd,QAASvF,EAAG,IAAMhtG,EAAG,IAAMA,EAAG,IAAMC,EAAG,IAAQ8sG,EAAG,IAAM9sG,EAAG,IAAMA,EAAG,IAAMD,EAAG,MACpEgtG,EAAG,IAAMhtG,EAAG,IAAMA,EAAG,IAAMC,EAAG,IAAQ8sG,EAAG,IAAM9sG,EAAG,IAAMA,EAAG,IAAMD,EAAG,OAG9E6yG,eAAe,GAAGC,iBAAiB,GAAGpF,oBAAsB,EAAEC,qBAAuB,IAAIoF,IAAI,SAASn5C,EAAQx0D,GAWjH,QAAS4tG,GAAWtsI,GAEhBjD,KAAKiD,KAAOA,EAOZjD,KAAKiX,UAQLjX,KAAKoyC,MAAQ,KAMbpyC,KAAKwvI,mBAAqBD,EAAWZ,KAjCzC,GAA4OE,IAAhO14C,EAAQ,wBAAuHA,EAAQ,uBAAgGA,EAAQ,iBACvPipB,EAAOjpB,EAAQ,kBAEnBx0D,GAAOD,QAAU6tG,EAsCjBA,EAAWZ,KAAO,EAOlBY,EAAWE,gBAAkB,EAO7BF,EAAW1rI,UAAU6rI,SAAW,SAASt9F,GACrCpyC,KAAKoyC,MAAQA,GASjBm9F,EAAW1rI,UAAU8rI,kBAAoB,WACrC,KAAM,IAAI7iI,OAAM,wDAGpB,IAAI+f,GAAOgiH,EAAKxiI,QAShBkjI,GAAWK,oBAAsB,SAASC,EAAOC,GAC7CjB,EAAKkB,IAAIljH,EAAMgjH,EAAMloI,SAAUmoI,EAAMnoI,SACrC,IAAIqoI,GAAKnB,EAAKoB,cAAcpjH,GACxBlD,EAAIkmH,EAAMK,eAAiBJ,EAAMI,cACrC,OAAavmH,GAAEA,GAARqmH,GAUXT,EAAWY,UAAY,SAASN,EAAOC,GACnC,MAAOD,GAAMO,UAAUjB,SAASW,EAAMM,YAU1Cb,EAAW1rI,UAAUwsI,oBAAsB,SAASR,EAAOC,GACvD,GAAI74H,EAEJ,QAAOjX,KAAKwvI,oBACZ,IAAKD,GAAWE,gBACZx4H,EAAUs4H,EAAWK,oBAAoBC,EAAMC,EAC/C,MACJ,KAAKP,GAAWZ,KACZ13H,EAASs4H,EAAWY,UAAUN,EAAMC,EACpC,MACJ,SACI,KAAM,IAAIhjI,OAAM,wCAAwC9M,KAAKwvI,oBAEjE,MAAOv4H,IAUXs4H,EAAWe,WAAa,SAAST,EAAOC,GAGpC,MAAGD,GAAM5sI,OAASm8G,EAAKmxB,QAAUT,EAAM7sI,OAASm8G,EAAKmxB,QAC1C,EAINV,EAAM5sI,OAASm8G,EAAKoxB,WAAaV,EAAM7sI,OAASm8G,EAAKmxB,QACrDV,EAAM5sI,OAASm8G,EAAKmxB,QAAaT,EAAM7sI,OAASm8G,EAAKoxB,WAC/C,EAIRX,EAAM5sI,OAASm8G,EAAKoxB,WAAaV,EAAM7sI,OAASm8G,EAAKoxB,WAC7C,EAIRX,EAAMY,aAAerxB,EAAKsxB,UAAYZ,EAAMW,aAAerxB,EAAKsxB,UACxD,EAINb,EAAMY,aAAerxB,EAAKsxB,UAAYZ,EAAM7sI,OAASm8G,EAAKmxB,QAC1DT,EAAMW,aAAerxB,EAAKsxB,UAAYb,EAAM5sI,OAASm8G,EAAKmxB,QACpD,GAGJ,GAGXhB,EAAWoB,MAAQ,EACnBpB,EAAWqB,IAAM,IAEdxB,eAAe,GAAGyB,kBAAkB,GAAG5G,oBAAsB,EAAEC,qBAAuB,IAAI4G,IAAI,SAAS36C,EAAQx0D,GAwBlH,QAASovG,GAAepjH,GACpB4hH,EAAW9rI,MAAMzD,MAEjB2tB,EAAUyW,EAAM4sG,SAASrjH,GACrBsjH,KAAQ,KACRnb,KAAQ,IACRob,KAAQ,KACRnb,KAAQ,IACRob,GAAQ,GACRC,GAAQ,KAGZpxI,KAAKixI,KAAOtjH,EAAQsjH,KACpBjxI,KAAKkxI,KAAOvjH,EAAQujH,KACpBlxI,KAAK81H,KAAOnoG,EAAQmoG,KACpB91H,KAAK+1H,KAAOpoG,EAAQooG,KACpB/1H,KAAKmxI,GAAKxjH,EAAQwjH,GAClBnxI,KAAKoxI,GAAKzjH,EAAQyjH,GAElBpxI,KAAKqxI,UAAYrxI,KAAK81H,KAAK91H,KAAKixI,MAAQjxI,KAAKmxI,GAC7CnxI,KAAKsxI,UAAYtxI,KAAK+1H,KAAK/1H,KAAKkxI,MAAQlxI,KAAKoxI,GA3CjD,GAGI7B,IAHQp5C,EAAQ,wBAAuHA,EAAQ,uBAAsGA,EAAQ,oBACrPA,EAAQ,mBACLA,EAAQ,sBACNA,EAAQ,4BAErB/xD,GADO+xD,EAAQ,gBACPA,EAAQ,kBAEpBx0D,GAAOD,QAAUqvG,EAsCjBA,EAAeltI,UAAY,GAAI0rI,GAQ/BwB,EAAeltI,UAAU8rI,kBAAoB,SAASv9F,GAelD,IAAI,GAdAn7B,MACA05G,EAASv+E,EAAMu+E,OACf4gB,EAAa5gB,EAAOtsH,OAGpB8sI,GAFWnxI,KAAKqxI,SACLrxI,KAAKsxI,SACXtxI,KAAKmxI,IACVC,EAAKpxI,KAAKoxI,GACVH,EAAOjxI,KAAKixI,KACZC,EAAOlxI,KAAKkxI,KACZpb,EAAO91H,KAAK81H,KACZC,EAAO/1H,KAAK+1H,KAGZyb,KAASC,EAAMN,EAAGC,EACdjtI,EAAE,EAAKstI,EAAFttI,EAASA,IAClBqtI,EAAKltI,QAOT,KAAI,GAJAotI,GAAQP,GAAMrb,EAAKmb,GACnBU,EAAQP,GAAMrb,EAAKmb,GAGf/sI,EAAE,EAAGA,IAAIotI,EAAYptI,IAazB,IAAI,GAZAytI,GAAKjhB,EAAOxsH,GACZgoC,EAAOylG,EAAGzlG,KACV0lG,EAAS3vI,KAAKgT,IAAIi3B,EAAKyiG,WAAW,GAAIqC,GACtCa,EAAS5vI,KAAKgT,IAAIi3B,EAAKyiG,WAAW,GAAIsC,GACtCa,EAAS7vI,KAAK23B,IAAIsS,EAAK2iG,WAAW,GAAIhZ,GACtCkc,EAAS9vI,KAAK23B,IAAIsS,EAAK2iG,WAAW,GAAI/Y,GACtCkc,EAAM/vI,KAAKmoC,MAAMqnG,GAASG,EAASZ,IACnCiB,EAAMhwI,KAAKmoC,MAAMsnG,GAASG,EAASZ,IACnCiB,EAAMjwI,KAAKmoC,MAAMqnG,GAASK,EAASd,IACnCmB,EAAMlwI,KAAKmoC,MAAMsnG,GAASK,EAASd,IAG/BrsI,EAAEotI,EAAQE,GAAHttI,EAAQA,IACnB,IAAI,GAAImqE,GAAEkjE,EAAQE,GAAHpjE,EAAQA,IAAI,CACvB,GAAIlqE,GAAKD,EACLE,EAAKiqE,EACLj4D,EAAMjS,GAAIssI,EAAG,GAAKrsI,CACnBgS,IAAO,GAAW06H,EAAN16H,GACXy6H,EAAMz6H,GAAMzS,KAAKstI,GAOjC,IAAI,GAAIztI,GAAE,EAAGA,IAAIstI,EAAOttI,IAGpB,IAAI,GAFAkuI,GAAMb,EAAKrtI,GAEPU,EAAE,EAAGytI,EAAaD,EAAIhuI,OAAQQ,IAAIytI,EAAcztI,IAEpD,IAAI,GADA+sI,GAAKS,EAAIxtI,GACLmqE,EAAE,EAAGA,IAAInqE,EAAGmqE,IAAI,CACpB,GAAIujE,GAAKF,EAAIrjE,EACVugE,GAAWe,WAAWsB,EAAGW,IAAOvyI,KAAKqwI,oBAAoBuB,EAAGW,IAC3Dt7H,EAAO3S,KAAKstI,EAAGW,GAK/B,MAAOt7H,MAGRu7H,0BAA0B,GAAGpD,eAAe,GAAGqD,mBAAmB,GAAGC,qBAAqB,GAAGC,kBAAkB,GAAGtD,iBAAiB,GAAGpF,oBAAsB,EAAEC,qBAAuB,IAAI0I,IAAI,SAASz8C,EAAQx0D,GAiBjN,QAASkxG,KACLtD,EAAWxrI,KAAK/D,KAAMuvI,EAAWoB,OAjBrC,CAAA,GAIIpB,IAJQp5C,EAAQ,wBAAuHA,EAAQ,uBAAuGA,EAAQ,oBACtPA,EAAQ,mBACRA,EAAQ,mBACLA,EAAQ,sBACNA,EAAQ,2BACdA,GAAQ,gBAEnBx0D,EAAOD,QAAUmxG,EAYjBA,EAAgBhvI,UAAY,GAAI0rI,GAQhCsD,EAAgBhvI,UAAU8rI,kBAAoB,SAASv9F,GACnD,GAAIu+E,GAASv+E,EAAMu+E,OACf15G,EAASjX,KAAKiX,MAElBA,GAAO5S,OAAS,CAEhB,KAAI,GAAIF,GAAE,EAAGotI,EAAW5gB,EAAOtsH,OAAQF,IAAIotI,EAAYptI,IAGnD,IAAI,GAFAytI,GAAKjhB,EAAOxsH,GAERU,EAAE,EAAKV,EAAFU,EAAKA,IAAI,CAClB,GAAI0tI,GAAK5hB,EAAO9rH,EAEb0qI,GAAWe,WAAWsB,EAAGW,IAAOvyI,KAAKqwI,oBAAoBuB,EAAGW,IAC3Dt7H,EAAO3S,KAAKstI,EAAGW,GAK3B,MAAOt7H,MAGRu7H,0BAA0B,GAAGpD,eAAe,GAAGqD,mBAAmB,GAAGC,qBAAqB,GAAGC,kBAAkB,GAAGG,kBAAkB,GAAG7I,oBAAsB,EAAEC,qBAAuB,IAAI6I,IAAI,SAAS58C,EAAQx0D,GA8ClN,QAASqxG,KAMLhzI,KAAKizI,oBAMLjzI,KAAKkzI,qBAOLlzI,KAAKmzI,gBAAiB,EAOtBnzI,KAAKozI,UAAY,GAOjBpzI,KAAKqzI,oBAAsB,GAM3BrzI,KAAKszI,gBAAkB,EAEvBtzI,KAAKuzI,cAAe,EACpBvzI,KAAKwzI,4BACLxzI,KAAKyzI,6BAOLzzI,KAAK0zI,YAAc,EAMnB1zI,KAAK2zI,UAAYC,EAASC,kBAM1B7zI,KAAK8zI,WAAaF,EAASG,mBAO3B/zI,KAAKg0I,kBAAoBJ,EAASC,kBAOlC7zI,KAAKi0I,mBAAqBL,EAASG,mBASnC/zI,KAAKk0I,yBAA0B,EAQ/Bl0I,KAAKm0I,wBAA0B,GAAIC,GAOnCp0I,KAAKq0I,gBAAkB,IAkN3B,QAASC,GAA8BC,EAAaC,GAChD3F,EAAKvlI,IAAIirI,EAAYphH,SAAS,GAA2B,IAAtBqhH,EAAanwI,QAAemwI,EAAa/sI,QAC5EonI,EAAKvlI,IAAIirI,EAAYphH,SAAS,GAA2B,GAAtBqhH,EAAanwI,QAAemwI,EAAa/sI,QAC5EonI,EAAKvlI,IAAIirI,EAAYphH,SAAS,GAA2B,GAAtBqhH,EAAanwI,OAAemwI,EAAa/sI,QAC5EonI,EAAKvlI,IAAIirI,EAAYphH,SAAS,GAA2B,IAAtBqhH,EAAanwI,OAAemwI,EAAa/sI,QA4sBhF,QAASgtI,GAAcC,EAAWH,EAAYI,EAAaC,GAQvD,IAAI,GAPAC,GAAeC,EACfC,EAAeC,EACfC,EAAKC,EACLl2D,EAAKm2D,EACL73G,EAAQo3G,EACR7qH,EAAQ0qH,EAAYphH,SACpBiiH,EAAY,KACRjxI,EAAE,EAAGA,IAAI0lB,EAAMxlB,OAAO,EAAGF,IAAI,CACjC,GAAIs4B,GAAK5S,EAAM1lB,EAAE0lB,EAAMxlB,QACnBq4B,EAAK7S,GAAO1lB,EAAE,GAAG0lB,EAAMxlB,OAI3BwqI,GAAKxoI,OAAOwuI,EAAcp4G,EAAIm4G,GAC9B/F,EAAKxoI,OAAO0uI,EAAcr4G,EAAIk4G,GAC9B5rG,EAAI6rG,EAAcA,EAAcF,GAChC3rG,EAAI+rG,EAAcA,EAAcJ,GAEhC5E,EAAIkF,EAAIJ,EAAcv3G,GACtByyG,EAAI/wD,EAAI+1D,EAAcz3G,EACtB,IAAI4M,GAAQ2kG,EAAKwG,YAAYJ,EAAGj2D,EAOhC,IALe,OAAZo2D,IACCA,EAAYlrG,GAIM,GAAnBA,EAAMkrG,EACL,OAAO,CAEXA,GAAYlrG,EAEhB,OAAO,EAplCX,GAA6O2kG,IAAjO14C,EAAQ,wBAAuHA,EAAQ,uBAAiGA,EAAQ,iBACxP45C,EAAMlB,EAAKkB,IACX/mG,EAAM6lG,EAAK7lG,IACXiB,EAAM4kG,EAAK5kG,IACX7F,EAAQ+xD,EAAQ,kBAChBi+C,EAAkBj+C,EAAQ,4BAC1By9C,EAAWz9C,EAAQ,yBACnBm/C,EAAkBn/C,EAAQ,gCAC1Bo/C,EAAmBp/C,EAAQ,iCAC3BnvD,EAASmvD,EAAQ,oBACjBq/C,EAASr/C,EAAQ,oBACjBs/C,EAAQt/C,EAAQ,mBAEhBjvF,GADOivF,EAAQ,mBACHA,EAAQ,uBAExBx0D,GAAOD,QAAUsxG,CAGjB,IAAI0C,GAAQ7G,EAAK8G,WAAW,EAAE,GAE1BlK,EAAOoD,EAAK8G,WAAW,EAAE,GACzBjK,EAAOmD,EAAK8G,WAAW,EAAE,GACzBC,EAAO/G,EAAK8G,WAAW,EAAE,GACzBE,EAAOhH,EAAK8G,WAAW,EAAE,GACzBG,EAAOjH,EAAK8G,WAAW,EAAE,GACzBI,EAAOlH,EAAK8G,WAAW,EAAE,GACzBK,EAAOnH,EAAK8G,WAAW,EAAE,GACzBM,EAAOpH,EAAK8G,WAAW,EAAE,GACzBO,EAAOrH,EAAK8G,WAAW,EAAE,GACzBQ,EAAQtH,EAAK8G,WAAW,EAAE,GAC1BS,EAAQvH,EAAK8G,WAAW,EAAE,GAC1BU,EAAQxH,EAAK8G,WAAW,EAAE,GAC1BW,EAAQzH,EAAK8G,WAAW,EAAE,GAC1BY,EAAQ1H,EAAK8G,WAAW,EAAE,GAC1Ba,EAAQ3H,EAAK8G,WAAW,EAAE,GAC1Bc,EAAQ5H,EAAK8G,WAAW,EAAE,GAC1Be,EAAQ7H,EAAK8G,WAAW,EAAE,GAC1BgB,EAAQ9H,EAAK8G,WAAW,EAAE,GAC1BiB,IAqHJ5D,GAAYnvI,UAAUgzI,iBAAmB,SAAShH,EAAOC,GACrD,GAAIgH,GAAe,EAATjH,EAAM3pI,GACZ6wI,EAAe,EAATjH,EAAM5pI,EAChB,SAASlG,KAAKm0I,wBAAwB9qI,IAAIytI,EAAKC,IAOnD/D,EAAYnvI,UAAUwkB,MAAQ,WAC1BroB,KAAKm0I,wBAAwB9rH,OAI7B,KAFA,GAAI2uH,GAAMh3I,KAAKizI,iBACXxuG,EAAIuyG,EAAI3yI,OACNogC,KAAI,CACN,GAAIilG,GAAKsN,EAAIvyG,GACTqyG,EAAMpN,EAAGmG,MAAM3pI,GACf6wI,EAAMrN,EAAGoG,MAAM5pI,EACnBlG,MAAKm0I,wBAAwB7qI,IAAIwtI,EAAKC,GAAK,GAG/C,GAAG/2I,KAAKuzI,aAAa,CACjB,GAAI0D,GAAKj3I,KAAKizI,iBACViE,EAAKl3I,KAAKkzI,kBACViE,EAAMn3I,KAAKyzI,0BACX2D,EAAMp3I,KAAKwzI,wBACfpvG,GAAMizG,YAAYD,EAAIH,GACtB7yG,EAAMizG,YAAYF,EAAID,GAI1Bl3I,KAAKizI,iBAAiB5uI,OAASrE,KAAKkzI,kBAAkB7uI,OAAS,GAUnE2uI,EAAYnvI,UAAUyzI,sBAAwB,SAASzH,EAAOC,EAAOyH,EAAQC,GACzE,GAAIjyI,GAAIvF,KAAKwzI,yBAAyBnvI,OAASrE,KAAKwzI,yBAAyB16H,MAAQ,GAAIw8H,GAAgBzF,EAAMC,EAa/G,OAZAvqI,GAAEsqI,MAAQA,EACVtqI,EAAEuqI,MAAQA,EACVvqI,EAAEgyI,OAASA,EACXhyI,EAAEiyI,OAASA,EACXjyI,EAAEmuI,YAAc1zI,KAAK0zI,YACrBnuI,EAAEkyI,aAAez3I,KAAK62I,iBAAiBhH,EAAMC,GAC7CvqI,EAAEouI,UAAY3zI,KAAK2zI,UACnBpuI,EAAEuuI,WAAa9zI,KAAK8zI,WACpBvuI,EAAE04B,aAAc,EAChB14B,EAAEqxD,SAAU,EACZrxD,EAAEmhB,OAAS1mB,KAAKq0I,gBAET9uI,GAUXytI,EAAYnvI,UAAU6zI,uBAAyB,SAAS7H,EAAOC,EAAOyH,EAAQC,GAC1E,GAAIjyI,GAAIvF,KAAKyzI,0BAA0BpvI,OAASrE,KAAKyzI,0BAA0B36H,MAAQ,GAAIy8H,GAAiB1F,EAAMC,EAalH,OAZAvqI,GAAEsqI,MAAQA,EACVtqI,EAAEuqI,MAAQA,EACVvqI,EAAEgyI,OAASA,EACXhyI,EAAEiyI,OAASA,EACXjyI,EAAEoyI,aAAa33I,KAAKozI,WACpB7tI,EAAE8tI,oBAAsBrzI,KAAKqzI,oBAC7B9tI,EAAEqyI,iBAAmB53I,KAAKszI,gBAC1B/tI,EAAEqxD,SAAU,EACZrxD,EAAE04B,aAAc,EAChB14B,EAAEouI,UAAY3zI,KAAKg0I,kBACnBzuI,EAAEuuI,WAAa9zI,KAAKi0I,mBACpB1uI,EAAE0tI,iBAAiB5uI,OAAS,EACrBkB,GASXytI,EAAYnvI,UAAUg0I,0BAA4B,SAAStyI,GACvD,GAAImkI,GAAK1pI,KAAK03I,uBAAuBnyI,EAAEsqI,MAAOtqI,EAAEuqI,MAAOvqI,EAAEgyI,OAAQhyI,EAAEiyI,OAKnE,OAJA3I,GAAKroG,KAAKkjG,EAAGoO,cAAevyI,EAAEuyI,eAC9BjJ,EAAKroG,KAAKkjG,EAAGqO,cAAexyI,EAAEwyI,eAC9BlJ,EAAKmJ,WAAWtO,EAAGlyC,EAAGjyF,EAAE0yI,SACxBvO,EAAGuJ,iBAAiB3uI,KAAKiB,GAClBmkI,GAIXsJ,EAAYnvI,UAAUq0I,0BAA4B,SAASC,GACvD,IAAIA,EACA,KAAM,IAAIrrI,OAAM,oBAEpB,EAAA,GAAIvH,GAAIvF,KAAKizI,iBAAiBjzI,KAAKizI,iBAAiB5uI,OAAS,GACzDqlI,EAAK1pI,KAAK03I,uBAAuBnyI,EAAEsqI,MAAOtqI,EAAEuqI,MAAOvqI,EAAEgyI,OAAQhyI,EAAEiyI,QAC/D3H,EAAQtqI,EAAEsqI,KACFtqI,GAAEuqI,MACdjB,EAAKvlI,IAAIogI,EAAGoO,cAAe,EAAG,GAC9BjJ,EAAKvlI,IAAIogI,EAAGqO,cAAe,EAAG,GAC9BlJ,EAAKvlI,IAAIogI,EAAGlyC,EAAG,EAAG,EAClB,KAAI,GAAIrzF,GAAE,EAAGA,IAAIg0I,EAAah0I,IAC1BoB,EAAIvF,KAAKizI,iBAAiBjzI,KAAKizI,iBAAiB5uI,OAAS,EAAIF,GAC1DoB,EAAEsqI,QAAUA,GACXhB,EAAK7lG,IAAI0gG,EAAGlyC,EAAGkyC,EAAGlyC,EAAGjyF,EAAE0yI,SACvBpJ,EAAK7lG,IAAI0gG,EAAGoO,cAAepO,EAAGoO,cAAevyI,EAAEuyI,eAC/CjJ,EAAK7lG,IAAI0gG,EAAGqO,cAAerO,EAAGqO,cAAexyI,EAAEwyI,iBAE/ClJ,EAAKkB,IAAIrG,EAAGlyC,EAAGkyC,EAAGlyC,EAAGjyF,EAAE0yI,SACvBpJ,EAAK7lG,IAAI0gG,EAAGoO,cAAepO,EAAGoO,cAAevyI,EAAEwyI,eAC/ClJ,EAAK7lG,IAAI0gG,EAAGqO,cAAerO,EAAGqO,cAAexyI,EAAEuyI,gBAEnDpO,EAAGuJ,iBAAiB3uI,KAAKiB,EAG7B,IAAI6yI,GAAiB,EAAED,CAKvB,OAJAtJ,GAAKzoI,MAAMsjI,EAAGoO,cAAepO,EAAGoO,cAAeM,GAC/CvJ,EAAKzoI,MAAMsjI,EAAGqO,cAAerO,EAAGqO,cAAeK,GAC/CvJ,EAAK/kG,UAAU4/F,EAAGlyC,EAAGkyC,EAAGlyC,GACxBq3C,EAAKmJ,WAAWtO,EAAGlyC,EAAGkyC,EAAGlyC,GAClBkyC,GAiBXsJ,EAAYnvI,UAAU4xI,EAAM4C,KAAO5C,EAAM6C,QACzCtF,EAAYnvI,UAAU00I,WAAa,SAC/BC,EACAjE,EACAI,EACAC,EACA6D,EACAC,EACAC,EACAC,EACAC,GAGA,MAAGA,IACQ,EAEA,GAkBf7F,EAAYnvI,UAAU4xI,EAAM4C,KAAO5C,EAAMqD,WACzC9F,EAAYnvI,UAAUk1I,cAAgB,SAClCN,EACAC,EACAC,EACAC,EACAI,EACAC,EACAC,EACAC,EACAN,GAGA,MAAGA,IACQ,EAEA,EAWf,IAAIO,GAAyB,GAAIlyI,GAAU,EAAE,GACzCmyI,EAAwBxK,EAAKxiI,QAcjC2mI,GAAYnvI,UAAU4xI,EAAM6D,QAAU7D,EAAM6C,QAC5CtF,EAAYnvI,UAAU4xI,EAAM6D,QAAU7D,EAAMqD,WAC5C9F,EAAYnvI,UAAU01I,cAAgB,SAClCf,EACAjE,EACAiF,EACA5E,EACA6E,EACAjF,EACAkF,EACAC,EACAd,GAKA,GAAIe,GAAYP,CAChBxK,GAAKvlI,IAAIswI,EAAWpF,EAAanwI,OAAO,EAAE,GAC1CwqI,EAAKxoI,OAAOuzI,EAAUA,EAAUD,GAChC9K,EAAK7lG,IAAI4wG,EAAUA,EAAUF,EAC7B,IAAIG,GAAU75I,KAAK85I,aAAaL,EAAYjF,EAAaoF,EAAUD,EAAcnB,EAAWjE,EAAYiF,EAAe5E,EAAaiE,EAAUrE,EAAa/sI,OAE3JonI,GAAKvlI,IAAIswI,GAAWpF,EAAanwI,OAAO,EAAG,GAC3CwqI,EAAKxoI,OAAOuzI,EAAUA,EAAUD,GAChC9K,EAAK7lG,IAAI4wG,EAAUA,EAAUF,EAC7B,IAAIK,GAAU/5I,KAAK85I,aAAaL,EAAYjF,EAAaoF,EAAUD,EAAcnB,EAAWjE,EAAYiF,EAAe5E,EAAaiE,EAAUrE,EAAa/sI,OAE3J,IAAGoxI,IAAagB,GAAWE,GACvB,OAAO,CAIX,IAAIpwH,GAAIyvH,CACR9E,GAA8B3qH,EAAE6qH,EAChC,IAAIv9H,GAASjX,KAAKg6I,aAAaxB,EAAWjE,EAAYiF,EAAe5E,EAAa6E,EAAY9vH,EAAE+vH,EAAgBC,EAAcd,EAE9H,OAAO5hI,GAAS4iI,EAAUE,GAgB9B/G,EAAYnvI,UAAU4xI,EAAM6D,QAAU7D,EAAM4C,MAC5CrF,EAAYnvI,UAAUo2I,YAAc,SAChCxB,EACAC,EACAwB,EACAtB,EACAa,EACAjF,EACAkF,EACAC,EACAd,GAGA,MAAGA,IACQ,EAEA,EAIf,IAAIsB,GAA0BtL,EAAKxiI,SAC/B+tI,EAA0BvL,EAAKxiI,SAC/BguI,EAA2B,GAAInzI,GAAU,EAAE,EAc/C8rI,GAAYnvI,UAAU4xI,EAAM6D,QAAU7D,EAAM6D,SAC5CtG,EAAYnvI,UAAUy2I,eAAiB,SAAS1I,EAAG2I,EAAGz1I,EAAG01I,EAAIjI,EAAGkI,EAAGz1I,EAAG01I,EAAI7B,GAatE,IAAI,GAXA8B,GAIAC,EAAaT,EACbU,EAAaT,EAEbjC,EAAc,EAIVh0I,EAAE,EAAK,EAAFA,EAAKA,IAAI,CAElB0qI,EAAKvlI,IAAIsxI,GAAgB,IAAJz2I,EAAM,GAAG,GAAGo2I,EAAGl2I,OAAO,EAAE,GAC7CwqI,EAAKxoI,OAAOu0I,EAAWA,EAAWJ,GAClC3L,EAAK7lG,IAAI4xG,EAAWA,EAAW91I,EAE/B,KAAI,GAAID,GAAE,EAAK,EAAFA,EAAKA,IAAI,CAElBgqI,EAAKvlI,IAAIuxI,GAAgB,IAAJh2I,EAAM,GAAG,GAAG41I,EAAGp2I,OAAO,EAAG,GAC9CwqI,EAAKxoI,OAAOw0I,EAAWA,EAAWH,GAClC7L,EAAK7lG,IAAI6xG,EAAWA,EAAW71I,GAG5BhF,KAAKk0I,0BACJyG,EAAuB36I,KAAKmzI,eAC5BnzI,KAAKmzI,gBAAiB,EAG1B,IAAIl8H,GAASjX,KAAK86I,aAAalJ,EAAG2I,EAAGK,EAAWJ,EAAIjI,EAAGkI,EAAGI,EAAWH,EAAI7B,EAAU0B,EAAG9yI,OAAQgzI,EAAGhzI,OAMjG,IAJGzH,KAAKk0I,0BACJl0I,KAAKmzI,eAAiBwH,GAGvB9B,GAAY5hI,EACX,OAAO,CAGXkhI,IAAelhI,GAIpBjX,KAAKk0I,0BAEJyG,EAAuB36I,KAAKmzI,eAC5BnzI,KAAKmzI,gBAAiB,EAI1B,IAAI53G,GAAO8+G,CACX/F,GAA8B/4G,EAAKg/G,EACnC,IAAIV,GAAU75I,KAAKu5I,cAAc3H,EAAGr2G,EAAKz2B,EAAG01I,EAAIjI,EAAGkI,EAAGz1I,EAAG01I,EAAI7B,EAM7D,IAJG74I,KAAKk0I,0BACJl0I,KAAKmzI,eAAiBwH,GAGvB9B,GAAYgB,EACX,OAAO,CAIX,IAFA1B,GAAe0B,EAEZ75I,KAAKk0I,wBAAwB,CAE5B,GAAIyG,GAAuB36I,KAAKmzI,cAChCnzI,MAAKmzI,gBAAiB,EAG1BmB,EAA8B/4G,EAAKk/G,EACnC,IAAIV,GAAU/5I,KAAKu5I,cAAchH,EAAGh3G,EAAKv2B,EAAG01I,EAAI9I,EAAG2I,EAAGz1I,EAAG01I,EAAI3B,EAM7D,OAJG74I,MAAKk0I,0BACJl0I,KAAKmzI,eAAiBwH,GAGvB9B,GAAYkB,GACJ,GAEX5B,GAAe4B,EAEZ/5I,KAAKk0I,yBACDiE,GAAen4I,KAAKmzI,gBACnBnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAKk4I,0BAA0BC,IAI5DA,IAgBXnF,EAAYnvI,UAAU4xI,EAAM4C,KAAO5C,EAAM4C,MACzCrF,EAAYnvI,UAAUk3I,SAAW,SAC7BlL,EACA0H,EACAyD,EACAC,EACAnL,EACA0H,EACA0D,EACAC,EACAtC,GAGA,MAAGA,IACQ,EAEA,GAgBf7F,EAAYnvI,UAAU4xI,EAAM2F,MAAQ3F,EAAM4C,MAC1CrF,EAAYnvI,UAAUw3I,UAAY,SAASC,EAAWC,EAAYC,EAAaC,EACpChD,EAAWC,EAAYC,EAAaC,EAAWC,GACtF,GAAIhE,GAAepJ,EACfsJ,EAAerJ,EACfgQ,EAAgB9F,EAChB+F,EAAgB9F,EAChB+F,EAAY9F,EACZ+F,EAAgB9F,EAChBlpH,EAAOmpH,EACP8F,EAAc7F,EACd8F,EAAe7F,EACfrsH,EAAQ+sH,EACRuB,EAAc,CAGlBtJ,GAAKvlI,IAAIurI,GAAe6D,EAAUr0I,OAAO,EAAG,GAC5CwqI,EAAKvlI,IAAIyrI,EAAe2D,EAAUr0I,OAAO,EAAG,GAG5CwqI,EAAKxoI,OAAOq1I,EAAe7G,EAAc+D,GACzC/J,EAAKxoI,OAAOs1I,EAAe5G,EAAc6D,GAEzC5vG,EAAI0yG,EAAeA,EAAe/C,GAClC3vG,EAAI2yG,EAAeA,EAAehD,GAElC9J,EAAKroG,KAAKquG,EAAa6G,GACvB7M,EAAKroG,KAAKuuG,EAAa4G,GAGvB5L,EAAI6L,EAAW7G,EAAcF,GAC7BhG,EAAK/kG,UAAU+xG,EAAeD,GAG9B/M,EAAKmJ,WAAW+D,EAAcF,GAE9BhN,EAAKxoI,OAAOy1I,EAAapG,EAAO+F,GAGhC5xH,EAAM,GAAKgrH,EACXhrH,EAAM,GAAKkrH,CACX,KAAI,GAAI5wI,GAAE,EAAGA,EAAE0lB,EAAMxlB,OAAQF,IAAI,CAC7B,GAAI2b,GAAI+J,EAAM1lB,EAEd4rI,GAAIljH,EAAM/M,EAAG07H,EAEb,IAAIh2I,GAAIykC,EAAIpd,EAAKivH,EAEjB,IAAO,EAAJt2I,EAAM,CAEL,GAAGqzI,EACC,OAAO,CAGX,IAAItzI,GAAIvF,KAAKs3I,sBAAsBgE,EAAU7C,EAAS8C,EAAW7C,EACjEP,KAEAtJ,EAAKroG,KAAKjhC,EAAE0yI,QAAS6D,GACrBjN,EAAK/kG,UAAUvkC,EAAE0yI,QAAQ1yI,EAAE0yI,SAG3BpJ,EAAKzoI,MAAMymB,EAAMivH,EAAat2I,GAG9BuqI,EAAIxqI,EAAEuyI,cAAeh4H,EAAG+M,GACxBkjH,EAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAewD,EAAU3zI,UAGhDooI,EAAIxqI,EAAEwyI,cAAej4H,EAAM64H,GAC3B3vG,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAeY,GACtC5I,EAAIxqI,EAAEwyI,cAAexyI,EAAEwyI,cAAeU,EAAS9wI,UAE/C3H,KAAKizI,iBAAiB3uI,KAAKiB,GAEvBvF,KAAKk0I,yBACFl0I,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,KAM3E,MAAGszI,IACQ,GAGP74I,KAAKk0I,yBACFiE,GAAen4I,KAAKmzI,gBACnBnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAKk4I,0BAA0BC,IAI5DA,IAGXnF,EAAYnvI,UAAU4xI,EAAMuG,SAAWvG,EAAM6D,SAC7CtG,EAAYnvI,UAAUo4I,gBAAkB,SACpCC,EACAC,EACAC,EACAC,EACA5C,EACAjF,EACAkF,EACAC,EACAd,GAEA,MAAO74I,MAAKs8I,WAAWJ,EAAaC,EAAcC,EAAiBC,EAAe5C,EAAYjF,EAAakF,EAAgBC,EAAcd,EAAUrE,EAAa/sI,OAAQ,IAkB5KurI,EAAYnvI,UAAU4xI,EAAM8G,OAAS9G,EAAM4C,MAC3CrF,EAAYnvI,UAAUy4I,WAAa,SAC/BE,EACAC,EACAC,EACAC,EACAlE,EACAC,EACAC,EACAC,EACAC,EACA+D,EACAC,GAEA,GAAID,GAAaA,GAAc,EAC3BC,EAAsC,mBAAjB,GAA+BA,EAAeJ,EAAYh1I,OAE/Eq1I,EAAYrR,EACZsR,EAAwBrR,EACxBsR,EAAiBpH,EACjBqH,EAAapH,EACbkG,EAAejG,EACf8F,EAAY7F,EACZ8F,EAAgB7F,EAChBnB,EAAeoB,EACflB,EAAemB,EACfwF,EAAgBvF,EAChBwF,EAAgBvF,EAChBvpH,EAAOwpH,EACP6G,EAAe5G,EACf6G,EAAsB5G,EAEtB1sH,EAAQ+sH,CAGZ/H,GAAKvlI,IAAIurI,GAAe6D,EAAUr0I,OAAO,EAAG,GAC5CwqI,EAAKvlI,IAAIyrI,EAAe2D,EAAUr0I,OAAO,EAAG,GAG5CwqI,EAAKxoI,OAAOq1I,EAAe7G,EAAc+D,GACzC/J,EAAKxoI,OAAOs1I,EAAe5G,EAAc6D,GAEzC5vG,EAAI0yG,EAAeA,EAAe/C,GAClC3vG,EAAI2yG,EAAeA,EAAehD,GAElC9J,EAAKroG,KAAKquG,EAAa6G,GACvB7M,EAAKroG,KAAKuuG,EAAa4G,GAGvB5L,EAAI6L,EAAW7G,EAAcF,GAC7BhG,EAAK/kG,UAAU+xG,EAAeD,GAG9B/M,EAAKmJ,WAAW+D,EAAcF,GAG9B9L,EAAIljH,EAAM6vH,EAAc7H,EACxB,IAAIrvI,GAAIykC,EAAIpd,EAAMkvH,EAClBhM,GAAIkN,EAAYpI,EAAc8D,GAE9B5I,EAAImN,EAAcR,EAAc/D,EAEhC,IAAIyE,GAAYP,EAAeD,CAE/B,IAAG16I,KAAKirB,IAAI3nB,GAAK43I,EAAU,CAGvBvO,EAAKzoI,MAAM02I,EAAWf,EAAcv2I,GACpCuqI,EAAIiN,EAAgBN,EAAcI,GAGlCjO,EAAKzoI,MAAM22I,EAAuBhB,EAAc9xG,EAAI8xG,EAAcmB,IAClErO,EAAK/kG,UAAUizG,EAAsBA,GACrClO,EAAKzoI,MAAM22I,EAAuBA,EAAuBH,GACzD5zG,EAAIg0G,EAAeA,EAAeD,EAGlC,IAAIh3I,GAAOkkC,EAAI4xG,EAAemB,GAC1BK,EAAOpzG,EAAI4xG,EAAehH,GAC1ByI,EAAOrzG,EAAI4xG,EAAe9G,EAE9B,IAAGhvI,EAAMs3I,GAAcC,EAANv3I,EAAW,CAGxB,GAAG8yI,EACC,OAAO,CAGX,IAAItzI,GAAIvF,KAAKs3I,sBAAsBkF,EAAW/D,EAASgE,EAAY/D,EAmBnE,OAjBA7J,GAAKzoI,MAAMb,EAAE0yI,QAAS6E,EAAW,IACjCjO,EAAK/kG,UAAUvkC,EAAE0yI,QAAS1yI,EAAE0yI,SAE5BpJ,EAAKzoI,MAAOb,EAAEuyI,cAAevyI,EAAE0yI,QAAU4E,GACzC7zG,EAAIzjC,EAAEuyI,cAAevyI,EAAEuyI,cAAe4E,GACtC3M,EAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAe0E,EAAW70I,UAEjDooI,EAAIxqI,EAAEwyI,cAAeiF,EAAgBrE,GACrC3vG,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAeY,GACtC5I,EAAIxqI,EAAEwyI,cAAexyI,EAAEwyI,cAAeU,EAAS9wI,UAE/C3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,IAGxD,GAKfskB,EAAM,GAAKgrH,EACXhrH,EAAM,GAAKkrH,CAEX,KAAI,GAAI5wI,GAAE,EAAGA,EAAE0lB,EAAMxlB,OAAQF,IAAI,CAC7B,GAAI2b,GAAI+J,EAAM1lB,EAId,IAFA4rI,EAAIljH,EAAM/M,EAAG48H,GAEV7N,EAAKoB,cAAcpjH,GAAQ3qB,KAAK+3F,IAAImjD,EAAW,GAAG,CAEjD,GAAGvE,EACC,OAAO,CAGX,IAAItzI,GAAIvF,KAAKs3I,sBAAsBkF,EAAW/D,EAASgE,EAAY/D,EAsBnE,OApBA7J,GAAKroG,KAAKjhC,EAAE0yI,QAASprH,GACrBgiH,EAAK/kG,UAAUvkC,EAAE0yI,QAAQ1yI,EAAE0yI,SAG3BpJ,EAAKzoI,MAAMb,EAAEuyI,cAAevyI,EAAE0yI,QAAS4E,GACvC7zG,EAAIzjC,EAAEuyI,cAAevyI,EAAEuyI,cAAe4E,GACtC3M,EAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAe0E,EAAW70I,UAEjDooI,EAAIxqI,EAAEwyI,cAAej4H,EAAG64H,GACxB9J,EAAKzoI,MAAM+2I,EAAqB53I,EAAE0yI,SAAU2E,GAC5C5zG,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAeoF,GACtCn0G,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAeY,GACtC5I,EAAIxqI,EAAEwyI,cAAexyI,EAAEwyI,cAAeU,EAAS9wI,UAE/C3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,IAGxD,GAIf,MAAO,IAeXytI,EAAYnvI,UAAU4xI,EAAM8G,OAAS9G,EAAM6D,SAC3CtG,EAAYnvI,UAAU05I,cAAgB,SAAS3L,EAAG2I,EAAGz1I,EAAG01I,EAAIjI,EAAGkI,EAAGz1I,EAAG01I,EAAI7B,GACrE,MAAO74I,MAAKs8I,WAAW1K,EAAG2I,EAAGz1I,EAAG01I,EAAIjI,EAAGkI,EAAGz1I,EAAG01I,EAAI7B,EAAU4B,EAAGhzI,SAiBlEurI,EAAYnvI,UAAU4xI,EAAM8G,OAAS9G,EAAM6C,QAC3CtF,EAAYnvI,UAAU4xI,EAAM8G,OAAS9G,EAAMqD,WAC3C9F,EAAYnvI,UAAUi2I,aAAe,SACjC0C,EACAC,EACAC,EACAC,EACAnE,EACAjE,EACAI,EACAC,EACAiE,EACAgE,GAsCA,IAAI,GApCAA,GAAsC,gBAAjB,GAA4BA,EAAeJ,EAAYh1I,OAE5EotI,EAAepJ,EACfsJ,EAAerJ,EACfkQ,EAAYhG,EACZiG,EAAgBhG,EAChBiG,EAAchG,EAKdjpH,EAAOspH,EACPqH,EAAcpH,EAKdqH,EAA4BnH,EAC5BoH,EAAYnH,EACZoH,EAAgBnH,EAChBoH,EAAenH,EAEfoH,GAAQ,EACRC,EAAuBzxG,OAAOG,UAU9B3iB,EAAQ0qH,EAAYphH,SAGhBhvB,EAAE,EAAGA,IAAI0lB,EAAMxlB,OAAO,EAAGF,IAAI,CACjC,GAAIs4B,GAAK5S,EAAM1lB,EAAE0lB,EAAMxlB,QACnBq4B,EAAK7S,GAAO1lB,EAAE,GAAG0lB,EAAMxlB,OAiB3B,IAfAwqI,EAAKxoI,OAAOwuI,EAAcp4G,EAAIm4G,GAC9B/F,EAAKxoI,OAAO0uI,EAAcr4G,EAAIk4G,GAC9B5rG,EAAI6rG,EAAcA,EAAcF,GAChC3rG,EAAI+rG,EAAcA,EAAcJ,GAChC5E,EAAI6L,EAAW7G,EAAcF,GAE7BhG,EAAK/kG,UAAU+xG,EAAeD,GAG9B/M,EAAKmJ,WAAW8D,EAAaD,GAG7BhN,EAAKzoI,MAAMs3I,EAAU5B,GAAaW,EAAYh1I,QAC9CuhC,EAAI00G,EAAUA,EAAUhB,GAErBjI,EAAciJ,EAAUnJ,EAAYI,EAAaC,GAAa,CAE7D/F,EAAKkB,IAAI4N,EAAc9I,EAAa6I,EACpC,IAAIK,GAAoB77I,KAAKirB,IAAI0hH,EAAK5kG,IAAI0zG,EAAc7B,GAEjCgC,GAApBC,IACClP,EAAKroG,KAAKo3G,EAAaF,GACvBI,EAAuBC,EACvBlP,EAAKzoI,MAAMq3I,EAA0B3B,EAAYiC,GACjDlP,EAAK7lG,IAAIy0G,EAA0BA,EAA0BC,GAC7DG,GAAQ,IAKpB,GAAGA,EAAM,CAEL,GAAGhF,EACC,OAAO,CAGX,IAAItzI,GAAIvF,KAAKs3I,sBAAsBkF,EAAWhE,EAAWiE,EAAYlI,EAkBrE,OAjBA1F,GAAKkB,IAAIxqI,EAAE0yI,QAAS2F,EAAclB,GAClC7N,EAAK/kG,UAAUvkC,EAAE0yI,QAAS1yI,EAAE0yI,SAE5BpJ,EAAKzoI,MAAMb,EAAEuyI,cAAgBvyI,EAAE0yI,QAAS4E,GACxC7zG,EAAIzjC,EAAEuyI,cAAevyI,EAAEuyI,cAAe4E,GACtC3M,EAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAe0E,EAAW70I,UAEjDooI,EAAIxqI,EAAEwyI,cAAe0F,EAA2B9I,GAChD3rG,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAepD,GACtC5E,EAAIxqI,EAAEwyI,cAAexyI,EAAEwyI,cAAeS,EAAW7wI,UAEjD3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAMtE,KAAK63I,0BAA0BtyI,IAGzD,EAIX,GAAGs3I,EAAe,EACd,IAAI,GAAI14I,GAAE,EAAGA,EAAE0lB,EAAMxlB,OAAQF,IAAI,CAC7B,GAAI65I,GAAcn0H,EAAM1lB,EAKxB,IAJA0qI,EAAKxoI,OAAOm3I,EAAaQ,EAAapJ,GACtC5rG,EAAIw0G,EAAaA,EAAa7I,GAE9B5E,EAAIljH,EAAM2wH,EAAad,GACpB7N,EAAKoB,cAAcpjH,GAAQ3qB,KAAK+3F,IAAI4iD,EAAc,GAAG,CAEpD,GAAGhE,EACC,OAAO,CAGX,IAAItzI,GAAIvF,KAAKs3I,sBAAsBkF,EAAWhE,EAAWiE,EAAYlI,EAoBrE,OAlBA1F,GAAKroG,KAAKjhC,EAAE0yI,QAASprH,GACrBgiH,EAAK/kG,UAAUvkC,EAAE0yI,QAAQ1yI,EAAE0yI,SAG3BpJ,EAAKzoI,MAAMb,EAAEuyI,cAAevyI,EAAE0yI,QAAS4E,GACvC7zG,EAAIzjC,EAAEuyI,cAAevyI,EAAEuyI,cAAe4E,GACtC3M,EAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAe0E,EAAW70I,UAEjDooI,EAAIxqI,EAAEwyI,cAAeyF,EAAa7I,GAClC3rG,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAepD,GACtC5E,EAAIxqI,EAAEwyI,cAAexyI,EAAEwyI,cAAeS,EAAW7wI,UAEjD3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,IAGxD,GAKnB,MAAO,GAGX,IAAIuvI,GAAmBjG,EAAKxiI,SACxB2oI,EAAmBnG,EAAKxiI,SACxB6oI,EAASrG,EAAKxiI,SACd8oI,EAAStG,EAAKxiI,QAwDlB2mI,GAAYnvI,UAAU4xI,EAAMuG,SAAWvG,EAAM6C,QAC7CtF,EAAYnvI,UAAU4xI,EAAMuG,SAAWvG,EAAMqD,WAC7C9F,EAAYnvI,UAAUo6I,eAAiB,SACnC/B,EACAC,EACA+B,EACA7B,EACA7D,EACAjE,EACAI,EACAC,EACAiE,GAEA,GAAIhE,GAAepJ,EACfsJ,EAAerJ,EACfkQ,EAAYhG,EACZiG,EAAgBhG,EAChBkG,EAAejG,EACfmH,EAAalH,EACboI,EAAmBnI,EAGnBnpH,EAAOspH,EAKPsH,EAA4BnH,EAI5BqH,EAAgBjH,EAChB0H,EAAgBzH,EAChBmH,EAAuBzxG,OAAOG,UAG9BqxG,GAAQ,EACRh0H,EAAQ0qH,EAAYphH,QAGxB,KAAIshH,EAAcyJ,EAAe3J,EAAYI,EAAaC,GACtD,MAAO,EAGX,IAAGiE,EACC,OAAO,CAKX,KAAI,GAAI10I,GAAE,EAAGA,IAAI0lB,EAAMxlB,OAAO,EAAGF,IAAI,CACjC,GAAIs4B,GAAK5S,EAAM1lB,EAAE0lB,EAAMxlB,QACnBq4B,EAAK7S,GAAO1lB,EAAE,GAAG0lB,EAAMxlB,OAG3BwqI,GAAKxoI,OAAOwuI,EAAcp4G,EAAIm4G,GAC9B/F,EAAKxoI,OAAO0uI,EAAcr4G,EAAIk4G,GAC9B5rG,EAAI6rG,EAAcA,EAAcF,GAChC3rG,EAAI+rG,EAAcA,EAAcJ,GAGhC5E,EAAI6L,EAAW7G,EAAcF,GAC7BhG,EAAK/kG,UAAU+xG,EAAeD,GAG9B/M,EAAKmJ,WAAW+D,EAAcF,GAG9B9L,EAAIljH,EAAMqxH,EAAgBrJ,EAC1B,EAAQ5qG,EAAIpd,EAAMkvH,GAClBhM,EAAIkN,EAAYpI,EAAcF,GAE9B5E,EAAIoO,EAAkBD,EAAgBvJ,GAEtC9F,EAAKkB,IAAI4N,EAAc9I,EAAaqJ,EACpC,IAAIH,GAAoB77I,KAAKirB,IAAI0hH,EAAK5kG,IAAI0zG,EAAc5B,GAEjC+B,GAApBC,IACCD,EAAuBC,EACvBlP,EAAKzoI,MAAMq3I,EAA0B1B,EAAagC,GAClDlP,EAAK7lG,IAAIy0G,EAA0BA,EAA0BS,GAC7DrP,EAAKroG,KAAK43G,EAAcrC,GACxB8B,GAAQ,GAIhB,GAAGA,EAAM,CACL,GAAIt4I,GAAIvF,KAAKs3I,sBAAsB4E,EAAa1D,EAAW2D,EAAc5H,EAqBzE,OAnBA1F,GAAKzoI,MAAMb,EAAE0yI,QAASmG,EAAe,IACrCvP,EAAK/kG,UAAUvkC,EAAE0yI,QAAS1yI,EAAE0yI,SAG5BpJ,EAAKvlI,IAAI/D,EAAEuyI,cAAgB,EAAG,GAC9B9uG,EAAIzjC,EAAEuyI,cAAevyI,EAAEuyI,cAAeoG,GACtCnO,EAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAeoE,EAAav0I,UAGnDooI,EAAIxqI,EAAEwyI,cAAe0F,EAA2B9I,GAChD3rG,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAepD,GACtC5E,EAAIxqI,EAAEwyI,cAAexyI,EAAEwyI,cAAeS,EAAW7wI,UAEjD3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAMtE,KAAK63I,0BAA0BtyI,IAGzD,EAIX,MAAO,IAkBXytI,EAAYnvI,UAAU4xI,EAAM8G,QAC5BvJ,EAAYnvI,UAAUi3I,aAAe,SACjCjL,EACA0H,EACA8G,EACApD,EACAnL,EACA0H,EACA8G,EACAnD,EACAtC,EACA0F,EACAC,GAGA,GAAI3xH,GAAO4+G,EACP8S,EAAUA,GAAWhH,EAAO9vI,OAC5B+2I,EAAUA,GAAWhH,EAAO/vI,MAEhCsoI,GAAIljH,EAAKwxH,EAAQC,EACjB,IAAI30H,GAAI40H,EAAUC,CAClB,IAAG3P,EAAKoB,cAAcpjH,GAAQ3qB,KAAK+3F,IAAItwE,EAAE,GACrC,MAAO,EAGX,IAAGkvH,EACC,OAAO,CAGX,IAAItzI,GAAIvF,KAAKs3I,sBAAsBzH,EAAMC,EAAMyH,EAAOC,EAkBtD,OAjBAzH,GAAIxqI,EAAE0yI,QAASqG,EAASD,GACxBxP,EAAK/kG,UAAUvkC,EAAE0yI,QAAQ1yI,EAAE0yI,SAE3BpJ,EAAKzoI,MAAOb,EAAEuyI,cAAevyI,EAAE0yI,QAAUsG,GACzC1P,EAAKzoI,MAAOb,EAAEwyI,cAAexyI,EAAE0yI,SAAUuG,GAEzCx1G,EAAIzjC,EAAEuyI,cAAevyI,EAAEuyI,cAAeuG,GACtCtO,EAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAejI,EAAMloI,UAE5CqhC,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAeuG,GACtCvO,EAAIxqI,EAAEwyI,cAAexyI,EAAEwyI,cAAejI,EAAMnoI,UAE5C3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,IAExD,GAgBXytI,EAAYnvI,UAAU4xI,EAAM2F,MAAQ3F,EAAM6C,QAC1CtF,EAAYnvI,UAAU4xI,EAAM2F,MAAQ3F,EAAMqD,WAC1C9F,EAAYnvI,UAAU46I,YAAc,SAChCnD,EACAC,EACAC,EACAC,EACAjD,EACAjE,EACAI,EACAC,EACAiE,GAEA,GAAI2E,GAAc/R,EACdqQ,EAAcpQ,EACd7+G,EAAO+oH,EAEP8I,EAAc,CAClB7P,GAAKxoI,OAAOy1I,EAAapG,EAAO+F,EAEhC,KAAI,GAAIt3I,GAAE,EAAGA,IAAIowI,EAAYphH,SAAS9uB,OAAQF,IAAI,CAC9C,GAAI2b,GAAIy0H,EAAYphH,SAAShvB,EAM7B,IALA0qI,EAAKxoI,OAAOm3I,EAAa19H,EAAG80H,GAC5B5rG,EAAIw0G,EAAaA,EAAa7I,GAE9B5E,EAAIljH,EAAM2wH,EAAahC,GAEpBvxG,EAAIpd,EAAKivH,IAAgB,EAAE,CAE1B,GAAGjD,EACC,OAAO,CAIX6F,IAEA,IAAIn5I,GAAIvF,KAAKs3I,sBAAsBgE,EAAU9C,EAAW+C,EAAWhH,EAEnExE,GAAIljH,EAAM2wH,EAAahC,GAEvB3M,EAAKroG,KAAKjhC,EAAE0yI,QAAS6D,EAErB,IAAIt2I,GAAIykC,EAAIpd,EAAMtnB,EAAE0yI,QACpBpJ,GAAKzoI,MAAMymB,EAAMtnB,EAAE0yI,QAASzyI,GAG5BuqI,EAAIxqI,EAAEwyI,cAAeyF,EAAahF,EAAW7wI,UAI7CooI,EAAKxqI,EAAEuyI,cAAe0F,EAAa3wH,GACnCkjH,EAAKxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAewD,EAAU3zI,UAEjD3H,KAAKizI,iBAAiB3uI,KAAKiB,GAEvBvF,KAAKk0I,yBACFl0I,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,KAY3E,MANGvF,MAAKk0I,yBACDl0I,KAAKmzI,gBAAkBuL,GACtB1+I,KAAKkzI,kBAAkB5uI,KAAKtE,KAAKk4I,0BAA0BwG,IAI5DA,GAgBX1L,EAAYnvI,UAAU4xI,EAAMuG,SAAWvG,EAAM2F,OAC7CpI,EAAYnvI,UAAU86I,cAAgB,SAClCzC,EACAC,EACA+B,EACA7B,EACAf,EACAC,EACAC,EACAC,EACA5C,GAEA,GAAIhsH,GAAO4+G,EACPqQ,EAAcpQ,CAElB+P,GAAaA,GAAc,EAE3B1L,EAAIljH,EAAMqxH,EAAgB1C,GAC1B3M,EAAKxoI,OAAOy1I,EAAapG,EAAO+F,EAEhC,IAAIj2I,GAAIykC,EAAIpd,EAAMivH,EAElB,IAAGt2I,EAAI,EACH,MAAO,EAEX,IAAGqzI,EACC,OAAO,CAGX,IAAItzI,GAAIvF,KAAKs3I,sBAAsBgE,EAAUY,EAAaX,EAAWY,EAkBrE,OAhBAtN,GAAKroG,KAAKjhC,EAAE0yI,QAAS6D,GACrBjN,EAAKzoI,MAAOymB,EAAMtnB,EAAE0yI,QAASzyI,GAI7BuqI,EAAKxqI,EAAEuyI,cAAeoG,EAAgBrxH,GACtCkjH,EAAKxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAewD,EAAU3zI,UAGjDooI,EAAKxqI,EAAEwyI,cAAemG,EAAgBhC,EAAav0I,UAEnD3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,IAExD,GAgBXytI,EAAYnvI,UAAU4xI,EAAM8G,OAAS9G,EAAMuG,UAC3ChJ,EAAYnvI,UAAU+6I,eAAiB,SACnCpC,EACAC,EACAC,EACAC,EACAT,EACAC,EACA+B,EACA7B,EACAxD,GAEA,GAAIhsH,GAAO4+G,CAGX,IADAsE,EAAIljH,EAAMqxH,EAAgBxB,GACvB7N,EAAKoB,cAAcpjH,GAAQ3qB,KAAK+3F,IAAIwiD,EAAYh1I,OAAQ,GACvD,MAAO,EAEX,IAAGoxI,EACC,OAAO,CAGX,IAAItzI,GAAIvF,KAAKs3I,sBAAsBkF,EAAWN,EAAaO,EAAYN,EAkBvE,OAjBAtN,GAAKroG,KAAKjhC,EAAE0yI,QAASprH,GACrBgiH,EAAK/kG,UAAUvkC,EAAE0yI,QAAQ1yI,EAAE0yI,SAG3BpJ,EAAKzoI,MAAMb,EAAEuyI,cAAevyI,EAAE0yI,QAASwE,EAAYh1I,QACnDuhC,EAAIzjC,EAAEuyI,cAAevyI,EAAEuyI,cAAe4E,GACtC3M,EAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAe0E,EAAW70I,UAGjDooI,EAAIxqI,EAAEwyI,cAAemG,EAAgBhC,EAAav0I,UAElD3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,IAGxD,EAGX,EAAA,GAAIs5I,GAAyB,GAAI73G,GAAO,GACpC83G,EAAoBjQ,EAAKxiI,SACzB0yI,EAAoBlQ,EAAKxiI,QACLwiI,GAAKxiI,SAc7B2mI,EAAYnvI,UAAU4xI,EAAM2F,MAAQ3F,EAAM6D,SAC1CtG,EAAYnvI,UAAUm7I,aAAe,SACjC1D,EACAC,EACAC,EACAC,EACAhC,EACAjF,EACAyK,EACAtF,EACAd,GAEA,GAAIqG,GAAOJ,EACPK,EAAOJ,EACP/nF,EAAS6nF,CAIbhQ,GAAKvlI,IAAI41I,GAAO1K,EAAanwI,OAAO,EAAG,GACvCwqI,EAAKxoI,OAAO64I,EAAKA,EAAKvF,GACtB3wG,EAAIk2G,EAAKA,EAAKD,GAEdpQ,EAAKvlI,IAAI61I,EAAO3K,EAAanwI,OAAO,EAAG,GACvCwqI,EAAKxoI,OAAO84I,EAAKA,EAAKxF,GACtB3wG,EAAIm2G,EAAKA,EAAKF,GAEdjoF,EAAOvvD,OAAS+sI,EAAa/sI,MAE7B,IAAIkzI,EAGD36I,MAAKk0I,0BACJyG,EAAuB36I,KAAKmzI,eAC5BnzI,KAAKmzI,gBAAiB,EAI1B,IAAIiM,GAAep/I,KAAKq/I,YAAY5F,EAAYziF,EAAOkoF,EAAK,EAAG5D,EAAUC,EAAWC,EAAYC,EAAY5C,GACxGyG,EAAet/I,KAAKq/I,YAAY5F,EAAYziF,EAAOmoF,EAAK,EAAG7D,EAAUC,EAAWC,EAAYC,EAAY5C,EAO5G,IAJG74I,KAAKk0I,0BACJl0I,KAAKmzI,eAAiBwH,GAGvB9B,EACC,MAAOuG,IAAgBE,CAEvB,IAAIC,GAAWH,EAAeE,CAM9B,OALGt/I,MAAKk0I,yBACDqL,GACCv/I,KAAKkzI,kBAAkB5uI,KAAKtE,KAAKk4I,0BAA0BqH,IAG5DA,GAefvM,EAAYnvI,UAAU4xI,EAAM8G,OAAS9G,EAAM2F,OAC3CpI,EAAYnvI,UAAUw7I,YAAc,SAAYzN,EAAG2I,EAAGz1I,EAAG01I,EAAIjI,EAAGkI,EAAGz1I,EAAG01I,EAAI7B,GACtE,GAAI2D,GAAa5K,EACb6K,EAAclC,EACdmC,EAAe53I,EACfw2I,EAAY/I,EAEZiJ,EAAcx2I,EACdy2I,EAAaf,CAEjBe,GAAaA,GAAc,CAG3B,IAAI+D,GAAgB/T,EAChBqQ,EAAcpQ,EACdx0G,EAAO0+G,CAEX7F,GAAIyP,EAAe9C,EAAclB,GAGjC3M,EAAKxoI,OAAOy1I,EAAapG,EAAO+F,EAGhC,IAAIj2I,GAAIykC,EAAI6xG,EAAa0D,EAEzB,IAAGh6I,EAAIi3I,EAAYh1I,OACf,MAAO,EAGX,IAAGoxI,EACC,OAAO,CAIX,IAAI4G,GAAUz/I,KAAKs3I,sBAAsBgE,EAAUkB,EAAW/B,EAAGF,EAsBjE,OAnBA1L,GAAKroG,KAAKi5G,EAAQxH,QAAS6D,GAG3BjN,EAAKzoI,MAAMq5I,EAAQ1H,cAAe0H,EAAQxH,SAAUwE,EAAYh1I,QAChEuhC,EAAIy2G,EAAQ1H,cAAe0H,EAAQ1H,cAAe2E,GAClD3M,EAAI0P,EAAQ1H,cAAe0H,EAAQ1H,cAAeyE,EAAW70I,UAG7DknI,EAAKzoI,MAAM8wB,EAAMuoH,EAAQxH,QAASzyI,GAClCuqI,EAAI0P,EAAQ3H,cAAe0H,EAAetoH,GAC1C8R,EAAIy2G,EAAQ3H,cAAe2H,EAAQ3H,cAAe0D,GAClDzL,EAAI0P,EAAQ3H,cAAe2H,EAAQ3H,cAAewD,EAAU3zI,UAE5D3H,KAAKizI,iBAAiB3uI,KAAKm7I,GAExBz/I,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAMtE,KAAK63I,0BAA0B4H,IAGzD,GAeXzM,EAAYnvI,UAAU4xI,EAAM6C,QAC5BtF,EAAYnvI,UAAU4xI,EAAM6C,OAAS7C,EAAMqD,WAC3C9F,EAAYnvI,UAAU4xI,EAAMqD,WAC5B9F,EAAYnvI,UAAUm2I,aAAe,SAAWpI,EAAG2I,EAAGz1I,EAAG01I,EAAIjI,EAAGkI,EAAGz1I,EAAG01I,EAAI7B,EAAUrP,GAChF,GAAIkW,GAAUjU,EACViJ,EAAahJ,EACbiU,EAAc/J,EACdgK,EAAc/J,EACd+F,EAAY9F,EAEZ+J,EAAiB7J,EACjBnpH,EAAOopH,EACP6F,EAAc5F,EACdiC,EAAc,EACd3O,EAAkC,gBAAhB,GAA2BA,EAAY,EAEzDqU,EAAQ7K,EAAY8M,mBAAmBvF,EAAGz1I,EAAG01I,EAAGC,EAAGz1I,EAAG01I,EAAGgF,EAC7D,KAAI7B,EACA,MAAO,EAIX9N,GAAIljH,EAAK7nB,EAAGF,GACTmlC,EAAIy1G,EAAQ7yH,GAAQ,GACnBgiH,EAAKzoI,MAAMs5I,EAAQA,EAAQ,GAI/B,IAAIK,GAAe/M,EAAYgN,eAAezF,EAAGC,EAAGkF,GAAQ,GACxDO,EAAejN,EAAYgN,eAAevF,EAAGC,EAAGgF,EAEpD,IAAoB,KAAjBK,GAAwC,KAAjBE,EACtB,MAAO,EAIX,KAAI,GAAIjxE,GAAE,EAAK,EAAFA,EAAKA,IAAI,CAElB,GAAIkxE,GAAeH,EACfI,EAAeF,EACf1I,EAAUgD,EAAI/C,EAAUiD,EACxB4D,EAAUv5I,EAAIw5I,EAAUt5I,EACxBi2I,EAAST,EAAIW,EAAST,EACtB7K,EAAQ+B,EAAI9B,EAAQyC,CAExB,IAAS,IAANvjE,EAAQ,CAEP,GAAI60B,EACJA,GAAMq8C,EACNA,EAAeC,EACfA,EAAet8C,EAEfA,EAAM0zC,EACNA,EAASC,EACTA,EAAS3zC,EAETA,EAAMw6C,EACNA,EAAUC,EACVA,EAAUz6C,EAEVA,EAAMo3C,EACNA,EAASE,EACTA,EAASt3C,EAETA,EAAMgsC,EACNA,EAAQC,EACRA,EAAQjsC,EAIZ,IAAI,GAAIh/F,GAAEs7I,EAAgBA,EAAa,EAAft7I,EAAkBA,IAAI,CAG1C,GAAIib,GAAI03H,EAAOrkH,UAAUtuB,EAAE2yI,EAAOrkH,SAAS9uB,QAAQmzI,EAAOrkH,SAAS9uB,OACnEwqI,GAAKxoI,OAAOquI,EAAY50H,EAAGq7H,GAC3BnyG,EAAI0rG,EAAYA,EAAY4J,EAK5B,KAAI,GAHA8B,GAAiB,EAGbj8I,EAAE+7I,EAAa,EAAKA,EAAa,EAAf/7I,EAAkBA,IAAI,CAE5C,GAAIs4B,GAAK86G,EAAOpkH,UAAUhvB,EAAIozI,EAAOpkH,SAAS9uB,QAAQkzI,EAAOpkH,SAAS9uB,QAClEq4B,EAAK66G,EAAOpkH,UAAUhvB,EAAE,EAAEozI,EAAOpkH,SAAS9uB,QAAQkzI,EAAOpkH,SAAS9uB,OAGtEwqI,GAAKxoI,OAAOs5I,EAAaljH,EAAIw+G,GAC7BpM,EAAKxoI,OAAOu5I,EAAaljH,EAAIu+G,GAC7BjyG,EAAI22G,EAAaA,EAAatB,GAC9Br1G,EAAI42G,EAAaA,EAAavB,GAE9BtO,EAAI6L,EAAWgE,EAAaD,GAE5B9Q,EAAKmJ,WAAW8D,EAAaF,GAC7B/M,EAAK/kG,UAAUgyG,EAAYA,GAE3B/L,EAAIljH,EAAM6nH,EAAYiL,EAEtB,IAAIn6I,GAAIykC,EAAI6xG,EAAYjvH,IAEpB1oB,IAAM+7I,GAAqB1W,GAALhkI,GAAoBrB,IAAM+7I,GAAqB,GAAL16I,IAChE46I,IAIR,GAAGA,GAAkB,EAAE,CAEnB,GAAGvH,EACC,OAAO,CAOX,IAAItzI,IAAIvF,KAAKs3I,sBAAsBzH,EAAMC,EAAMyH,EAAOC,EACtDW,IAGA,IAAI17G,GAAK86G,EAAOpkH,SAAS,EAAmBokH,EAAOpkH,SAAS9uB,QACxDq4B,EAAK66G,EAAOpkH,UAAU+sH,EAAa,GAAK3I,EAAOpkH,SAAS9uB,OAG5DwqI,GAAKxoI,OAAOs5I,EAAaljH,EAAIw+G,GAC7BpM,EAAKxoI,OAAOu5I,EAAaljH,EAAIu+G,GAC7BjyG,EAAI22G,EAAaA,EAAatB,GAC9Br1G,EAAI42G,EAAaA,EAAavB,GAE9BtO,EAAI6L,EAAWgE,EAAaD,GAE5B9Q,EAAKmJ,WAAWzyI,GAAE0yI,QAAS2D,GAC3B/M,EAAK/kG,UAAUvkC,GAAE0yI,QAAQ1yI,GAAE0yI,SAE3BlI,EAAIljH,EAAM6nH,EAAYiL,EACtB,IAAIn6I,GAAIykC,EAAI1kC,GAAE0yI,QAAQprH,EACtBgiH,GAAKzoI,MAAMy5I,EAAgBt6I,GAAE0yI,QAASzyI,GAEtCuqI,EAAIxqI,GAAEuyI,cAAepD,EAAY2J,GACjCtO,EAAIxqI,GAAEuyI,cAAevyI,GAAEuyI,cAAe+H,GACtC72G,EAAIzjC,GAAEuyI,cAAevyI,GAAEuyI,cAAeuG,GACtCtO,EAAIxqI,GAAEuyI,cAAevyI,GAAEuyI,cAAejI,EAAMloI,UAE5CooI,EAAIxqI,GAAEwyI,cAAerD,EAAY4J,GACjCt1G,EAAIzjC,GAAEwyI,cAAexyI,GAAEwyI,cAAeuG,GACtCvO,EAAIxqI,GAAEwyI,cAAexyI,GAAEwyI,cAAejI,EAAMnoI,UAE5C3H,KAAKizI,iBAAiB3uI,KAAKiB,IAGvBvF,KAAKk0I,yBACFl0I,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,OAa/E,MANGvF,MAAKk0I,yBACDl0I,KAAKmzI,gBAAkBgF,GACtBn4I,KAAKkzI,kBAAkB5uI,KAAKtE,KAAKk4I,0BAA0BC,IAI5DA,EAIX,IAAIkI,GAAYxR,EAAK8G,WAAW,EAAE,EAYlC3C,GAAYsN,sBAAwB,SAAS/L,EAAaI,EAAcC,EAAa2L,EAAWtpI,GAC5F,GAEI6I,GACAvW,EAHA2L,EAAI,KACJ2kB,EAAI,KAGJ2mH,EAAYH,CAGhBxR,GAAKxoI,OAAOm6I,EAAWD,GAAY3L,EAGnC,KAAI,GAAIzwI,GAAE,EAAGA,EAAEowI,EAAYphH,SAAS9uB,OAAQF,IACxC2b,EAAIy0H,EAAYphH,SAAShvB,GACzBoF,EAAQ0gC,EAAInqB,EAAE0gI,IACH,OAARtrI,GAAgB3L,EAAQ2L,KACvBA,EAAM3L,IAEC,OAARswB,GAAwBA,EAARtwB,KACfswB,EAAMtwB,EAId,IAAGswB,EAAM3kB,EAAI,CACT,GAAIsiF,GAAI39D,CACRA,GAAM3kB,EACNA,EAAMsiF,EAIV,GAAI9wE,GAASujB,EAAI0qG,EAAc4L,EAE/B1R,GAAKvlI,IAAK2N,EAAQ4iB,EAAMnT,EAAQxR,EAAMwR,GAI1C,IAAI+5H,GAAW5R,EAAK8G,WAAW,EAAE,GAC7B+K,EAAW7R,EAAK8G,WAAW,EAAE,GAC7BgL,EAAW9R,EAAK8G,WAAW,EAAE,GAC7BiL,GAAW/R,EAAK8G,WAAW,EAAE,GAC7BkL,GAAWhS,EAAK8G,WAAW,EAAE,GAC7BmL,GAAWjS,EAAK8G,WAAW,EAAE,EAejC3C,GAAY8M,mBAAqB,SAASp5I,EAAGq6I,EAAQC,EAAOt0H,EAAGu0H,EAAQC,EAAOxB,GAC1E,GAAIyB,GAAU,KACV37D,GAAU,EACVq4D,GAAQ,EACRuD,EAAOX,EACPd,EAAce,EACdd,EAAce,EACdniD,EAASoiD,GACTS,EAAQR,GACRS,EAAQR,EAEZ,IAAGp6I,YAAcQ,IAAawlB,YAAcxlB,GAExC,IAAI,GAAIrC,GAAE,EAAO,IAAJA,EAAOA,IAAI,CACpB,GAAIU,GAAImB,EACJJ,EAAQ06I,CACL,KAAJn8I,IACCU,EAAImnB,EACJpmB,EAAQ46I,EAGZ,KAAI,GAAI/8I,GAAE,EAAO,IAAJA,EAAOA,IAAI,CAGX,IAANA,EACC0qI,EAAKvlI,IAAIk1F,EAAQ,EAAG,GACR,IAANr6F,GACN0qI,EAAKvlI,IAAIk1F,EAAQ,EAAG,GAEX,IAAVl4F,GACCuoI,EAAKxoI,OAAOm4F,EAAQA,EAAQl4F,GAIhC0sI,EAAYsN,sBAAsB55I,EAAGq6I,EAAQC,EAAOxiD,EAAO6iD,GAC3DrO,EAAYsN,sBAAsB5zH,EAAGu0H,EAAQC,EAAO1iD,EAAO8iD,EAG3D,IAAIj8I,GAAEg8I,EACF/7I,EAAEg8I,EACFC,GAAU,CACXF,GAAM,GAAKC,EAAM,KAChBh8I,EAAE+7I,EACFh8I,EAAEi8I,EACFC,GAAU,EAId,IAAI10H,GAAOvnB,EAAE,GAAKD,EAAE,EACpBmgF,GAAmB,GAAR34D,GAEE,OAAVs0H,GAAkBt0H,EAAOs0H,KACxBtS,EAAKroG,KAAKk5G,EAASlhD,GACnB2iD,EAAUt0H,EACVgxH,EAAQr4D,QAOpB,KAAI,GAAI3gF,GAAE,EAAO,IAAJA,EAAOA,IAAI,CACpB,GAAIU,GAAImB,EACJJ,EAAQ06I,CACL,KAAJn8I,IACCU,EAAImnB,EACJpmB,EAAQ46I,EAGZ,KAAI,GAAI/8I,GAAE,EAAGA,IAAIoB,EAAE4tB,SAAS9uB,OAAQF,IAAI,CAEpC0qI,EAAKxoI,OAAOs5I,EAAap6I,EAAE4tB,SAAShvB,GAAImC,GACxCuoI,EAAKxoI,OAAOu5I,EAAar6I,EAAE4tB,UAAUhvB,EAAE,GAAGoB,EAAE4tB,SAAS9uB,QAASiC,GAE9DypI,EAAIqR,EAAMxB,EAAaD,GAGvB9Q,EAAKmJ,WAAWx5C,EAAQ4iD,GACxBvS,EAAK/kG,UAAU00D,EAAOA,GAGtBw0C,EAAYsN,sBAAsB55I,EAAGq6I,EAAQC,EAAOxiD,EAAO6iD,GAC3DrO,EAAYsN,sBAAsB5zH,EAAGu0H,EAAQC,EAAO1iD,EAAO8iD,EAG3D,IAAIj8I,GAAEg8I,EACF/7I,EAAEg8I,EACFC,GAAU,CACXF,GAAM,GAAKC,EAAM,KAChBh8I,EAAE+7I,EACFh8I,EAAEi8I,EACFC,GAAU,EAId,IAAI10H,GAAOvnB,EAAE,GAAKD,EAAE,EACpBmgF,GAAmB,GAAR34D,GAEE,OAAVs0H,GAAkBt0H,EAAOs0H,KACxBtS,EAAKroG,KAAKk5G,EAASlhD,GACnB2iD,EAAUt0H,EACVgxH,EAAQr4D,IAgDxB,MAAOq4D,GAIX,IAAI2D,IAAW3S,EAAK8G,WAAW,EAAE,GAC7B8L,GAAW5S,EAAK8G,WAAW,EAAE,GAC7B+L,GAAW7S,EAAK8G,WAAW,EAAE,EAYjC3C,GAAYgN,eAAiB,SAASz6I,EAAEe,EAAMsuE,EAAK+sE,GAC/C,GAAInB,GAAYgB,GACZJ,EAAOK,GACPjjD,EAASkjD,EAGb7S,GAAKxoI,OAAOm6I,EAAW5rE,GAAOtuE,GAC3Bq7I,GACC9S,EAAKzoI,MAAMo6I,EAAUA,EAAU,GAMnC,KAAI,GAHAoB,GAAc,GACd9iF,EAAIv5D,EAAE4tB,SAAS9uB,OACfw9I,EAAS,GACL19I,EAAE,EAAGA,IAAI26D,EAAG36D,IAAI,CAEpB4rI,EAAIqR,EAAM77I,EAAE4tB,UAAUhvB,EAAE,GAAG26D,GAAIv5D,EAAE4tB,SAAShvB,EAAE26D,IAG5C+vE,EAAKmJ,WAAWx5C,EAAQ4iD,GACxBvS,EAAK/kG,UAAU00D,EAAOA,EAEtB,IAAIh5F,GAAIykC,EAAIu0D,EAAOgiD,IACA,KAAhBoB,GAAsBp8I,EAAIq8I,KACzBD,EAAcz9I,EAAI26D,EAClB+iF,EAASr8I,GAIjB,MAAOo8I,GAGX,IAAIE,IAA8BjT,EAAKxiI,SACnC01I,GAAyBlT,EAAKxiI,SAC9B21I,GAAuBnT,EAAKxiI,SAC5B41I,GAAuBpT,EAAKxiI,SAC5B61I,GAAiCrT,EAAKxiI,SACtC81I,GAAgCtT,EAAKxiI,SACrC+1I,GAAuCvT,EAAKxiI,QAYhD2mI,GAAYnvI,UAAU4xI,EAAM8G,OAAS9G,EAAM4M,aAC3CrP,EAAYnvI,UAAUy+I,kBAAoB,SAAU9F,EAAWC,EAAY7C,EAAU+C,EACjC4F,EAAOC,EAAQC,EAAMC,EAAS7J,EAAUpxI,GACxF,GAAImP,GAAO4rI,EAAQ5rI,KACfnP,EAASA,GAAUg1I,EAAYh1I,OAC/B4d,EAAIm9H,EAAQG,aACZ91H,EAAOk1H,GACPrE,EAAYoE,GACZlE,EAAesE,GACfU,EAAqBR,GACrBtG,EAAcqG,GACd1lH,EAAKulH,GACLtlH,EAAKulH,GAGLY,EAAO3gJ,KAAKmoC,OAAQuvG,EAAU,GAAKnyI,EAASg7I,EAAM,IAAMp9H,GACxDy9H,EAAO5gJ,KAAKqU,MAAQqjI,EAAU,GAAKnyI,EAASg7I,EAAM,IAAMp9H,EAKlD,GAAPw9H,IACCA,EAAO,GAERC,GAAQlsI,EAAKvS,SACZy+I,EAAOlsI,EAAKvS,OAAO,EAMvB,KAAI,GAFA6Q,GAAM0B,EAAKisI,GACXhpH,EAAMjjB,EAAKksI,GACP3+I,EAAE0+I,EAAQC,EAAF3+I,EAAQA,IACjByS,EAAKzS,GAAK01B,IACTA,EAAMjjB,EAAKzS,IAEZyS,EAAKzS,GAAK+Q,IACTA,EAAM0B,EAAKzS,GAInB,IAAGy1I,EAAU,GAAGnyI,EAASyN,EACrB,MAAO2jI,IAAW,EAAQ,CAkB9B,KAAI,GAHAgF,IAAQ,EAGJ15I,EAAE0+I,EAAQC,EAAF3+I,EAAQA,IAAI,CAGxB0qI,EAAKvlI,IAAImzB,EAAQt4B,EAAEkhB,EAAGzO,EAAKzS,IAC3B0qI,EAAKvlI,IAAIozB,GAAKv4B,EAAE,GAAGkhB,EAAGzO,EAAKzS,EAAE,IAC7B0qI,EAAK7lG,IAAIvM,EAAGA,EAAGgmH,GACf5T,EAAK7lG,IAAItM,EAAGA,EAAG+lH,GAGf5T,EAAKkB,IAAI+L,EAAap/G,EAAID,GAC1BoyG,EAAKxoI,OAAOy1I,EAAaA,EAAa55I,KAAKC,GAAG,GAC9C0sI,EAAK/kG,UAAUgyG,EAAYA,GAG3BjN,EAAKzoI,MAAMs3I,EAAU5B,GAAar0I,GAClConI,EAAK7lG,IAAI00G,EAAUA,EAAU9D,GAG7B/K,EAAKkB,IAAIljH,EAAK6wH,EAAUjhH,EAGxB,IAAIj3B,GAAIqpI,EAAK5kG,IAAIpd,EAAKivH,EACtB,IAAG4B,EAAU,IAAMjhH,EAAG,IAAMihH,EAAU,GAAKhhH,EAAG,IAAW,GAALl3B,EAAO,CAEvD,GAAGqzI,EACC,OAAO,CAGXgF,IAAQ,EAGRhP,EAAKzoI,MAAMymB,EAAKivH,GAAat2I,GAC7BqpI,EAAK7lG,IAAI40G,EAAaF,EAAU7wH,GAChCgiH,EAAKroG,KAAKo8G,EAAmB9G,EAE7B,IAAIv2I,GAAIvF,KAAKs3I,sBAAsBiL,EAAO/F,EAAWgG,EAAQ/F,EAG7D5N,GAAKroG,KAAKjhC,EAAE0yI,QAAS2K,GAGrB/T,EAAKzoI,MAAMb,EAAEwyI,cAAgBxyI,EAAE0yI,SAAUxwI,GACzCuhC,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAe6B,GACtC7J,EAAIxqI,EAAEwyI,cAAexyI,EAAEwyI,cAAeyE,EAAW70I,UAEjDknI,EAAKroG,KAAKjhC,EAAEuyI,cAAe8F,GAC3B/O,EAAKkB,IAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAeyK,EAAO56I,UAElD3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAMtE,KAAK63I,0BAA0BtyI,KAOxE,GADAs4I,GAAQ,EACLp2I,EAAS,EACR,IAAI,GAAItD,GAAE0+I,EAASC,GAAH3+I,EAASA,IAQrB,GALA0qI,EAAKvlI,IAAImzB,EAAIt4B,EAAEkhB,EAAGzO,EAAKzS,IACvB0qI,EAAK7lG,IAAIvM,EAAGA,EAAGgmH,GAEf5T,EAAKkB,IAAIljH,EAAM+sH,EAAWn9G,GAEvBoyG,EAAKoB,cAAcpjH,GAAQ3qB,KAAK+3F,IAAIxyF,EAAQ,GAAG,CAE9C,GAAGoxI,EACC,OAAO,CAGXgF,IAAQ,CAER,IAAIt4I,GAAIvF,KAAKs3I,sBAAsBiL,EAAO/F,EAAWgG,EAAQ/F,EAG7D5N,GAAKroG,KAAKjhC,EAAE0yI,QAASprH,GACrBgiH,EAAK/kG,UAAUvkC,EAAE0yI,QAAQ1yI,EAAE0yI,SAE3BpJ,EAAKzoI,MAAMb,EAAEwyI,cAAexyI,EAAE0yI,SAAUxwI,GACxCuhC,EAAIzjC,EAAEwyI,cAAexyI,EAAEwyI,cAAe6B,GACtC7J,EAAIxqI,EAAEwyI,cAAexyI,EAAEwyI,cAAeyE,EAAW70I,UAEjDooI,EAAIxqI,EAAEuyI,cAAer7G,EAAIgmH,GACzBz5G,EAAIzjC,EAAEuyI,cAAevyI,EAAEuyI,cAAe2K,GACtC1S,EAAIxqI,EAAEuyI,cAAevyI,EAAEuyI,cAAeyK,EAAO56I,UAE7C3H,KAAKizI,iBAAiB3uI,KAAKiB,GAExBvF,KAAKmzI,gBACJnzI,KAAKkzI,kBAAkB5uI,KAAKtE,KAAK63I,0BAA0BtyI,IAM3E,MAAGs4I,GACQ,EAGJ,EAIX,IAAIkF,IAAuBlU,EAAKxiI,SAC5B22I,GAAuBnU,EAAKxiI,SAC5B42I,GAA4BpU,EAAKxiI,SACjC62I,GAAoC,GAAI1N,IAAQ3G,EAAKxiI,SAASwiI,EAAKxiI,SAASwiI,EAAKxiI,SAASwiI,EAAKxiI,UAWnG2mI,GAAYnvI,UAAU4xI,EAAMqD,UAAYrD,EAAM4M,aAC9CrP,EAAYnvI,UAAU4xI,EAAM6C,OAAS7C,EAAM4M,aAC3CrP,EAAYnvI,UAAUs/I,kBAAoB,SAAU3K,EAAWjE,EAAY6O,EAAUxO,EACjC2N,EAAOC,EAAQC,EAAMC,EAAS7J,GAC9E,GAAIjiI,GAAO4rI,EAAQ5rI,KACfyO,EAAIm9H,EAAQG,aACZlmH,EAAKsmH,GACLrmH,EAAKsmH,GACLK,EAAUJ,GACVK,EAAaJ,GAGbL,EAAO3gJ,KAAKmoC,OAAQmuG,EAAWrsG,KAAKyiG,WAAW,GAAK6T,EAAM,IAAMp9H,GAChEy9H,EAAO5gJ,KAAKqU,MAAQiiI,EAAWrsG,KAAK2iG,WAAW,GAAK2T,EAAM,IAAMp9H,EAE1D,GAAPw9H,IACCA,EAAO,GAERC,GAAQlsI,EAAKvS,SACZy+I,EAAOlsI,EAAKvS,OAAO,EAMvB,KAAI,GAFA6Q,GAAM0B,EAAKisI,GACXhpH,EAAMjjB,EAAKksI,GACP3+I,EAAE0+I,EAAQC,EAAF3+I,EAAQA,IACjByS,EAAKzS,GAAK01B,IACTA,EAAMjjB,EAAKzS,IAEZyS,EAAKzS,GAAK+Q,IACTA,EAAM0B,EAAKzS,GAInB,IAAGq0I,EAAWrsG,KAAKyiG,WAAW,GAAK15H,EAC/B,MAAO2jI,IAAW,EAAQ,CAQ9B,KAAI,GAJAV,GAAc,EAIVh0I,EAAE0+I,EAAQC,EAAF3+I,EAAQA,IAAI,CAGxB0qI,EAAKvlI,IAAImzB,EAAQt4B,EAAEkhB,EAAGzO,EAAKzS,IAC3B0qI,EAAKvlI,IAAIozB,GAAKv4B,EAAE,GAAGkhB,EAAGzO,EAAKzS,EAAE,IAC7B0qI,EAAK7lG,IAAIvM,EAAGA,EAAGgmH,GACf5T,EAAK7lG,IAAItM,EAAGA,EAAG+lH,EAGf,IAAI9lE,GAAa,GACjBkyD,GAAKvlI,IAAI+5I,EAAyB,IAAf3mH,EAAG,GAAKD,EAAG,IAAsC,IAA5BC,EAAG,GAAKD,EAAG,GAAKkgD,IAExDkyD,EAAKkB,IAAIuT,EAAWnwH,SAAS,GAAIuJ,EAAI2mH,GACrCxU,EAAKkB,IAAIuT,EAAWnwH,SAAS,GAAIsJ,EAAI4mH,GACrCxU,EAAKroG,KAAK88G,EAAWnwH,SAAS,GAAImwH,EAAWnwH,SAAS,IACtD07G,EAAKroG,KAAK88G,EAAWnwH,SAAS,GAAImwH,EAAWnwH,SAAS,IACtDmwH,EAAWnwH,SAAS,GAAG,IAAMwpD,EAC7B2mE,EAAWnwH,SAAS,GAAG,IAAMwpD,EAG7Bw7D,GAAen4I,KAAKg6I,aAAgBxB,EAAYjE,EAAa6O,EAAWxO,EACpC2N,EAAQe,EAAYD,EAAS,EAAGxK,GAGxE,MAAOV,MAERoL,+BAA+B,GAAGC,wBAAwB,GAAGC,gCAAgC,GAAGrU,eAAe,GAAGyB,kBAAkB,GAAG4B,mBAAmB,GAAGiR,mBAAmB,GAAGC,sBAAsB,GAAG7Q,kBAAkB,GAAG8Q,2BAA2B,GAAGvU,iBAAiB,GAAGpF,oBAAsB,EAAEC,qBAAuB,IAAI2Z,IAAI,SAAS1tD,EAAQx0D,GAa9V,QAASmiH,KACLvU,EAAWxrI,KAAK/D,KAAKuvI,EAAWqB,KAOhC5wI,KAAK+jJ,YAOL/jJ,KAAKgkJ,UAAY,CAEjB,IAAIlsC,GAAO93G,IACXA,MAAKikJ,gBAAkB,SAAStoI,GAC5Bm8F,EAAKisC,SAASz/I,KAAKqX,EAAE24C,OAGzBt0D,KAAKkkJ,mBAAqB,SAASvoI,GAE/B,GAAI5E,GAAM+gG,EAAKisC,SAAS1gJ,QAAQsY,EAAE24C,KACvB,MAARv9C,GACC+gG,EAAKisC,SAASl3I,OAAOkK,EAAI,IAtCrC,GAA+OqtB,IAAnO+xD,EAAQ,wBAAuHA,EAAQ,uBAAoGA,EAAQ,mBAC3Po5C,EAAap5C,EAAQ,0BAEzBx0D,GAAOD,QAAUoiH,EAuCjBA,EAAcjgJ,UAAY,GAAI0rI,GAO9BuU,EAAcjgJ,UAAU6rI,SAAW,SAASt9F,GAExCpyC,KAAK+jJ,SAAS1/I,OAAS,EAGvB+/B,EAAMizG,YAAYr3I,KAAK+jJ,SAAU3xG,EAAMu+E,QAGvCv+E,EACKp1B,IAAI,UAAUhd,KAAKikJ,iBACnBjnI,IAAI,aAAahd,KAAKkkJ,oBAG3B9xG,EAAMviC,GAAG,UAAU7P,KAAKikJ,iBAAiBp0I,GAAG,aAAa7P,KAAKkkJ,oBAE9DlkJ,KAAKoyC,MAAQA,GAUjB0xG,EAAcK,aAAe,SAAS9+I,EAAG2+I,GACrCA,EAAsB,EAAVA,CACZ,KAAI,GAAI7/I,GAAE,EAAEsgC,EAAEp/B,EAAEhB,OAAUogC,EAAFtgC,EAAKA,IAAK,CAE9B,IAAI,GADA2b,GAAIza,EAAElB,GACFU,EAAEV,EAAI,EAAEU,GAAG,KACZQ,EAAER,GAAGsnC,KAAKyiG,WAAWoV,IAAclkI,EAAEqsB,KAAKyiG,WAAWoV,IADvCn/I,IAIjBQ,EAAER,EAAE,GAAKQ,EAAER,EAEfQ,GAAER,EAAE,GAAKib,EAEb,MAAOza,IASXy+I,EAAcjgJ,UAAU8rI,kBAAoB,WACxC,GAAIhf,GAAS3wH,KAAK+jJ,SACd9sI,EAASjX,KAAKiX,OACd+sI,EAAYhkJ,KAAKgkJ,SAErB/sI,GAAO5S,OAAS,CAIhB,KADA,GAAIogC,GAAIksF,EAAOtsH,OACTogC,KAAI,CACN,GAAIn/B,GAAIqrH,EAAOlsF,EACZn/B,GAAE8+I,iBACD9+I,EAAE++I,aAKVP,EAAcK,aAAaxzB,EAAQqzB,EAGnC,KAAI,GAAI7/I,GAAE,EAAG26D,EAAgB,EAAd6xD,EAAOtsH,OAAUF,IAAI26D,EAAG36D,IAGnC,IAAI,GAFAytI,GAAKjhB,EAAOxsH,GAERU,EAAEV,EAAE,EAAK26D,EAAFj6D,EAAKA,IAAI,CACpB,GAAI0tI,GAAK5hB,EAAO9rH,GAGZsqI,EAAYoD,EAAGpmG,KAAKyiG,WAAWoV,IAAcpS,EAAGzlG,KAAK2iG,WAAWkV,EACpE,KAAI7U,EACA,KAGDI,GAAWe,WAAWsB,EAAGW,IAAOvyI,KAAKqwI,oBAAoBuB,EAAGW,IAC3Dt7H,EAAO3S,KAAKstI,EAAGW,GAK3B,MAAOt7H,MAIRu7H,0BAA0B,GAAGnD,iBAAiB,GAAGpF,oBAAsB,EAAEC,qBAAuB,IAAIoa,IAAI,SAASnuD,EAAQx0D,GAiB5H,QAAS4iH,GAAW1U,EAAOC,EAAO7sI,EAAM0qB,GAMpC3tB,KAAKiD,KAAOA,EAEZ0qB,EAAUyW,EAAM4sG,SAASrjH,GACrB62H,kBAAmB,EACnBC,cAAe,IASnBzkJ,KAAK0kJ,aAOL1kJ,KAAK6vI,MAAQA,EAOb7vI,KAAK8vI,MAAQA,EAQb9vI,KAAKwkJ,iBAAmB72H,EAAQ62H,iBAG7B72H,EAAQ82H,eACJ5U,GACCA,EAAM8U,SAEP7U,GACCA,EAAM6U;CAjENxuD,EAAQ,wBAAuHA,EAAQ,sBAAyFx0D,GAAOD,QAAU6iH,CAE7P,IAAIngH,GAAQ+xD,EAAQ,iBAwEpBouD,GAAW1gJ,UAAU2V,OAAS,WAC1B,KAAM,IAAI1M,OAAM,kEAOpBy3I,EAAWK,SAAW,EAMtBL,EAAWM,KAAO,EAMlBN,EAAWO,KAAO,EAMlBP,EAAWQ,UAAY,EAMvBR,EAAWS,SAAW,EAOtBT,EAAW1gJ,UAAUohJ,aAAe,SAAStR,GAEzC,IAAI,GADAqD,GAAMh3I,KAAK0kJ,UACPvgJ,EAAE,EAAGA,IAAM6yI,EAAI3yI,OAAQF,IAAI,CAC/B,GAAIulI,GAAKsN,EAAI7yI,EACbulI,GAAGiK,UAAYA,EACfjK,EAAGzrG,aAAc,IASzBsmH,EAAW1gJ,UAAUqhJ,cAAgB,SAASpR,GAE1C,IAAI,GADAkD,GAAMh3I,KAAK0kJ,UACPvgJ,EAAE,EAAGA,IAAM6yI,EAAI3yI,OAAQF,IAAI,CAC/B,GAAIulI,GAAKsN,EAAI7yI,EACbulI,GAAGoK,WAAaA,EAChBpK,EAAGzrG,aAAc,MAItBoxG,iBAAiB,GAAGpF,oBAAsB,EAAEC,qBAAuB,IAAIib,IAAI,SAAShvD,EAAQx0D,GAqC/F,QAASyjH,GAAmBvV,EAAMC,EAAMniH,GACpCA,EAAUyW,EAAM4sG,SAASrjH,GACrB03H,cAAc,EAAE,GAChBC,cAAc,EAAE,KAGpBf,EAAWxgJ,KAAK/D,KAAK6vI,EAAMC,EAAMyU,EAAWK,SAASj3H,GAOrD3tB,KAAKqlJ,aAAexW,EAAK8G,WAAWhoH,EAAQ03H,aAAa,GAAI13H,EAAQ03H,aAAa,IAOlFrlJ,KAAKslJ,aAAezW,EAAK8G,WAAWhoH,EAAQ23H,aAAa,GAAI33H,EAAQ23H,aAAa,GAElF,IAAID,GAAerlJ,KAAKqlJ,aACpBC,EAAetlJ,KAAKslJ,YASxB,IAFAtlJ,KAAKynC,SAAW,EAEgB,gBAAtB9Z,GAAgB,SACtB3tB,KAAKynC,SAAW9Z,EAAQ8Z,aACrB,CAEH,GAAI89G,GAAe1W,EAAKxiI,SACpBm5I,EAAe3W,EAAKxiI,SACpBsd,EAAIklH,EAAKxiI,QAGbwiI,GAAKxoI,OAAOk/I,EAAcF,EAAcxV,EAAMvpI,OAC9CuoI,EAAKxoI,OAAOm/I,EAAcF,EAAcxV,EAAMxpI,OAE9CuoI,EAAK7lG,IAAIrf,EAAGmmH,EAAMnoI,SAAU69I,GAC5B3W,EAAKkB,IAAIpmH,EAAGA,EAAG47H,GACf1W,EAAKkB,IAAIpmH,EAAGA,EAAGkmH,EAAMloI,UAErB3H,KAAKynC,SAAWonG,EAAKxqI,OAAOslB,GAGhC,GAAI87H,EAEAA,GAD0B,mBAApB93H,GAAgB,SACX0e,OAAOG,UAEP7e,EAAQ83H,QAGvB,IAAIjnD,GAAS,GAAIo1C,GAAS/D,EAAMC,GAAO2V,EAASA,EAChDzlJ,MAAK0kJ,WAAclmD,GAMnBx+F,KAAKylJ,SAAWA,CAiBhB,IAAI97H,GAAIklH,EAAKxiI,SACTq5I,EAAK7W,EAAKxiI,SACVs5I,EAAK9W,EAAKxiI,SACVyrG,EAAO93G,IACXw+F,GAAOonD,UAAY,WACf,GAAI/V,GAAQ7vI,KAAK6vI,MACbC,EAAQ9vI,KAAK8vI,MACbhrI,EAAK+qI,EAAMloI,SACX3C,EAAK8qI,EAAMnoI,QAWf,OARAknI,GAAKxoI,OAAOq/I,EAAIL,EAAcxV,EAAMvpI,OACpCuoI,EAAKxoI,OAAOs/I,EAAIL,EAAcxV,EAAMxpI,OAEpCuoI,EAAK7lG,IAAIrf,EAAG3kB,EAAI2gJ,GAChB9W,EAAKkB,IAAIpmH,EAAGA,EAAG+7H,GACf7W,EAAKkB,IAAIpmH,EAAGA,EAAG7kB,GAGR+pI,EAAKxqI,OAAOslB,GAAKmuF,EAAKrwE,UAIjCznC,KAAK6lJ,YAAYJ,GAMjBzlJ,KAAK8lJ,mBAAoB,EAMzB9lJ,KAAK+lJ,WAAa,EAMlB/lJ,KAAKgmJ,mBAAoB,EAMzBhmJ,KAAKimJ,WAAa,EAMlBjmJ,KAAK2H,SAAW,EA3KpB,GAAwP48I,IAA5OpuD,EAAQ,wBAAuHA,EAAQ,uBAAkHA,EAAQ,iBACzQy9C,EAAWz9C,EAAQ,yBACnB04C,EAAO14C,EAAQ,gBACf/xD,EAAQ+xD,EAAQ,iBAEpBx0D,GAAOD,QAAU0jH,EAwKjBA,EAAmBvhJ,UAAY,GAAI0gJ,EAMnC,IAAIzmI,GAAI+wH,EAAKxiI,SACTq5I,EAAK7W,EAAKxiI,SACVs5I,EAAK9W,EAAKxiI,QACd+4I,GAAmBvhJ,UAAU2V,OAAS,WAClC,GAAIglF,GAASx+F,KAAK0kJ,UAAU,GACxB7U,EAAQ7vI,KAAK6vI,MACbC,EAAQ9vI,KAAK8vI,MAEbhrI,GADW9E,KAAKynC,SACXooG,EAAMloI,UACX3C,EAAK8qI,EAAMnoI,SACXu+I,EAAiBlmJ,KAAK0kJ,UAAU,GAChCnmF,EAAIigC,EAAOjgC,CAGfswE,GAAKxoI,OAAOq/I,EAAI1lJ,KAAKqlJ,aAAcxV,EAAMvpI,OACzCuoI,EAAKxoI,OAAOs/I,EAAI3lJ,KAAKslJ,aAAcxV,EAAMxpI,OAGzCuoI,EAAK7lG,IAAIlrB,EAAG9Y,EAAI2gJ,GAChB9W,EAAKkB,IAAIjyH,EAAGA,EAAG4nI,GACf7W,EAAKkB,IAAIjyH,EAAGA,EAAGhZ,GACf9E,KAAK2H,SAAWknI,EAAKxqI,OAAOyZ,EAE5B,IAAIqoI,IAAY,CAmBhB,IAlBGnmJ,KAAK8lJ,mBACD9lJ,KAAK2H,SAAW3H,KAAK+lJ,aACpBG,EAAeT,SAAW,EAC1BS,EAAeE,UAAYpmJ,KAAKylJ,SAChCzlJ,KAAKynC,SAAWznC,KAAK+lJ,WACrBI,GAAY,GAIjBnmJ,KAAKgmJ,mBACDhmJ,KAAK2H,SAAW3H,KAAKimJ,aACpBC,EAAeT,SAAWzlJ,KAAKylJ,SAC/BS,EAAeE,SAAW,EAC1BpmJ,KAAKynC,SAAWznC,KAAKimJ,WACrBE,GAAY,IAIhBnmJ,KAAKgmJ,mBAAqBhmJ,KAAK8lJ,qBAAuBK,EAGtD,YADAD,EAAetvF,SAAU,EAI7BsvF,GAAetvF,SAAU,EAEzBi4E,EAAK/kG,UAAUhsB,EAAEA,EAGjB,IAAIuoI,GAAOxX,EAAKwG,YAAYqQ,EAAI5nI,GAC5BwoI,EAAOzX,EAAKwG,YAAYsQ,EAAI7nI,EAGhCygD,GAAE,IAAMzgD,EAAE,GACVygD,EAAE,IAAMzgD,EAAE,GACVygD,EAAE,IAAM8nF,EACR9nF,EAAE,GAAKzgD,EAAE,GACTygD,EAAE,GAAKzgD,EAAE,GACTygD,EAAE,GAAK+nF,GAQXlB,EAAmBvhJ,UAAUgiJ,YAAc,SAASlgH,GAChD,GAAI64D,GAASx+F,KAAK0kJ,UAAU,EAC5BlmD,GAAO4nD,UAAYzgH,EACnB64D,EAAOinD,SAAY9/G,GAQvBy/G,EAAmBvhJ,UAAU0iJ,YAAc,WACvC,GAAI/nD,GAASx+F,KAAK0kJ,UAAU,EAC5B,OAAOlmD,GAAOinD,YAGfjC,wBAAwB,GAAGpU,eAAe,GAAGC,iBAAiB,GAAGmX,eAAe,GAAGvc,oBAAsB,EAAEC,qBAAuB,IAAIuc,IAAI,SAAStwD,EAAQx0D,GAsB9J,QAAS+kH,GAAe7W,EAAOC,EAAOniH,GAClCA,EAAUA,MAEV42H,EAAWxgJ,KAAK/D,KAAM6vI,EAAOC,EAAOyU,EAAWM,KAAMl3H,GAOrD3tB,KAAK29B,MAAkC,gBAAnBhQ,GAAa,MAAiBA,EAAQgQ,MAAQ,EAOlE39B,KAAKsG,MAAkC,gBAAnBqnB,GAAa,MAAiBA,EAAQrnB,MAAQwpI,EAAMxpI,MAAQtG,KAAK29B,MAAQkyG,EAAMvpI,MAGnGqnB,EAAQrnB,MAAQtG,KAAKsG,MACrBqnB,EAAQgQ,MAAQ39B,KAAK29B,MAErB39B,KAAK0kJ,WACD,GAAIiC,GAAkB9W,EAAMC,EAAMniH,IAIL,gBAAvBA,GAAiB,WACvB3tB,KAAK4mJ,aAAaj5H,EAAQk5H,WAlDlC,CAAA,GAAoPtC,IAAxOpuD,EAAQ,wBAAuHA,EAAQ,uBAA8GA,EAAQ,iBAErQwwD,GADWxwD,EAAQ,yBACCA,EAAQ,kCACrBA,GAAQ,gBAEnBx0D,EAAOD,QAAUglH,EAgDjBA,EAAe7iJ,UAAY,GAAI0gJ,GAE/BmC,EAAe7iJ,UAAU2V,OAAS,WAC9B,GAAIkwH,GAAK1pI,KAAK0kJ,UAAU,EACrBhb,GAAG/rG,QAAU39B,KAAK29B,OACjB+rG,EAAGod,SAAS9mJ,KAAK29B,OAErB+rG,EAAGpjI,MAAQtG,KAAKsG,OAQpBogJ,EAAe7iJ,UAAU+iJ,aAAe,SAASG,GAC7C/mJ,KAAK0kJ,UAAU,GAAGkC,aAAaG,IAQnCL,EAAe7iJ,UAAUmjJ,aAAe,WACpC,MAAOhnJ,MAAK0kJ,UAAU,GAAGe,YAE1BwB,iCAAiC,GAAGzD,wBAAwB,GAAGpU,eAAe,GAAGoX,eAAe,GAAGvc,oBAAsB,EAAEC,qBAAuB,IAAIgd,IAAI,SAAS/wD,EAAQx0D,GAqB9K,QAASwlH,GAAetX,EAAOC,EAAOniH,GAClCA,EAAUA,MAEV42H,EAAWxgJ,KAAK/D,KAAK6vI,EAAMC,EAAMyU,EAAWO,KAAKn3H,EAEjD,IAAI83H,GAAwC,mBAApB93H,GAAgB,SAAkB0e,OAAOG,UAAY7e,EAAQ83H,SA0BjFlhJ,GAxBcopB,EAAQy5H,aAAe,EAwB7B,GAAIxT,GAAS/D,EAAMC,GAAO2V,EAASA,IAC3CjhJ,EAAQ,GAAIovI,GAAS/D,EAAMC,GAAO2V,EAASA,GAC3C4B,EAAQ,GAAIzT,GAAS/D,EAAMC,GAAO2V,EAASA,GAE3ChhH,EAAIoqG,EAAKxiI,SACTud,EAAIilH,EAAKxiI,SACTyrG,EAAO93G,IACXuE,GAAEqhJ,UAAY,WAIV,MAHA/W,GAAKxoI,OAAOo+B,EAAGqzE,EAAKwvC,aAAczX,EAAMvpI,OACxCuoI,EAAKkB,IAAInmH,EAAGkmH,EAAMnoI,SAAUkoI,EAAMloI,UAClCknI,EAAKkB,IAAInmH,EAAGA,EAAG6a,GACR7a,EAAE,IAEbplB,EAAEohJ,UAAY,WAIV,MAHA/W,GAAKxoI,OAAOo+B,EAAGqzE,EAAKwvC,aAAczX,EAAMvpI,OACxCuoI,EAAKkB,IAAInmH,EAAGkmH,EAAMnoI,SAAUkoI,EAAMloI,UAClCknI,EAAKkB,IAAInmH,EAAGA,EAAG6a,GACR7a,EAAE,GAEb,IAAID,GAAIklH,EAAKxiI,SACTmrF,EAAIq3C,EAAKxiI,QACbg7I,GAAIzB,UAAY,WAOZ,MANA/W,GAAKxoI,OAAOsjB,EAAGmuF,EAAKwvC,aAAcxX,EAAMxpI,MAAQwxG,EAAKsvC,aACrDvY,EAAKzoI,MAAMujB,EAAEA,EAAE,IACfklH,EAAKkB,IAAInmH,EAAEimH,EAAMloI,SAASmoI,EAAMnoI,UAChCknI,EAAK7lG,IAAIpf,EAAEA,EAAED,GACbklH,EAAKxoI,OAAOmxF,EAAE7tE,GAAGznB,KAAKC,GAAG,GACzB0sI,EAAK/kG,UAAU0tD,EAAEA,GACVq3C,EAAK5kG,IAAIrgB,EAAE4tE,IAOtBx3F,KAAKsnJ,aAAezY,EAAKxiI,SACtBshB,EAAQ25H,aACPzY,EAAKroG,KAAKxmC,KAAKsnJ,aAAc35H,EAAQ25H,eAGrCzY,EAAKkB,IAAI/vI,KAAKsnJ,aAAcxX,EAAMnoI,SAAUkoI,EAAMloI,UAClDknI,EAAKxoI,OAAOrG,KAAKsnJ,aAActnJ,KAAKsnJ,cAAezX,EAAMvpI,QAO7DtG,KAAKonJ,YAAc,EAEfpnJ,KAAKonJ,YAD0B,gBAAzBz5H,GAAmB,YACNA,EAAQy5H,YAGRtX,EAAMxpI,MAAQupI,EAAMvpI,MAG3CtG,KAAK0kJ,UAAUpgJ,KAAKC,EAAGC,EAAG6iJ,GAC1BrnJ,KAAK6lJ,YAAYJ,GA5GrB,GAAoPlB,IAAxOpuD,EAAQ,wBAAuHA,EAAQ,uBAA8GA,EAAQ,iBACrQ04C,EAAO14C,EAAQ,gBACfy9C,EAAWz9C,EAAQ,wBAEvBx0D,GAAOD,QAAUylH,EA0GjBA,EAAetjJ,UAAY,GAAI0gJ,GAO/B4C,EAAetjJ,UAAUgiJ,YAAc,SAASxjG,GAE5C,IAAI,GADA20F,GAAMh3I,KAAK0kJ,UACPvgJ,EAAE,EAAGA,EAAEnE,KAAK0kJ,UAAUrgJ,OAAQF,IAClC6yI,EAAI7yI,GAAGshJ,SAAYpjG,EACnB20F,EAAI7yI,GAAGiiJ,UAAY/jG,GAS3B8kG,EAAetjJ,UAAU0iJ,YAAc,WACnC,MAAOvmJ,MAAK0kJ,UAAU,GAAGe,SAG7B,IAAIhhH,GAAIoqG,EAAKxiI,SACTsd,EAAIklH,EAAKxiI,SACTmrF,EAAIq3C,EAAKxiI,SACTk7I,EAAQ1Y,EAAK8G,WAAW,EAAE,GAC1BD,EAAQ7G,EAAK8G,WAAW,EAAE,EAC9BwR,GAAetjJ,UAAU2V,OAAS,WAC9B,GAAIjV,GAAMvE,KAAK0kJ,UAAU,GACrBlgJ,EAAMxE,KAAK0kJ,UAAU,GACrB2C,EAAMrnJ,KAAK0kJ,UAAU,GACrB7U,EAAQ7vI,KAAK6vI,MACbC,EAAQ9vI,KAAK8vI,KAEjBjB,GAAKxoI,OAAOo+B,EAAEzkC,KAAKsnJ,aAAazX,EAAMvpI,OACtCuoI,EAAKxoI,OAAOsjB,EAAE3pB,KAAKsnJ,aAAaxX,EAAMxpI,MAAQtG,KAAKonJ,aACnDvY,EAAKzoI,MAAMujB,EAAEA,EAAE,IAEfklH,EAAKxoI,OAAOmxF,EAAE7tE,EAAEznB,KAAKC,GAAG,GACxB0sI,EAAK/kG,UAAU0tD,EAAEA,GAEjBjzF,EAAEg6D,EAAE,GAAK,GACTh6D,EAAEg6D,EAAE,GAAM,EACVh6D,EAAEg6D,EAAE,IAAMswE,EAAKwG,YAAY5wG,EAAE8iH,GAC7BhjJ,EAAEg6D,EAAE,GAAM,EAEV/5D,EAAE+5D,EAAE,GAAM,EACV/5D,EAAE+5D,EAAE,GAAK,GACT/5D,EAAE+5D,EAAE,IAAMswE,EAAKwG,YAAY5wG,EAAEixG,GAC7BlxI,EAAE+5D,EAAE,GAAM,EAEV8oF,EAAI9oF,EAAE,IAAOi5B,EAAE,GACf6vD,EAAI9oF,EAAE,IAAOi5B,EAAE,GACf6vD,EAAI9oF,EAAE,GAAMi5B,EAAE,GACd6vD,EAAI9oF,EAAE,GAAMi5B,EAAE,GACd6vD,EAAI9oF,EAAE,GAAMswE,EAAKwG,YAAY1rH,EAAE6tE,MAGhCgsD,wBAAwB,GAAGpU,eAAe,GAAGoX,eAAe,GAAGvc,oBAAsB,EAAEC,qBAAuB,IAAIsd,IAAI,SAASrxD,EAAQx0D,GA4B1I,QAAS8lH,GAAoB5X,EAAOC,EAAOniH,GACvCA,EAAUA,MACV42H,EAAWxgJ,KAAK/D,KAAK6vI,EAAMC,EAAMyU,EAAWQ,UAAUp3H,EAGtD,IAAI03H,GAAexW,EAAK8G,WAAW,EAAE,GACjC+R,EAAa7Y,EAAK8G,WAAW,EAAE,GAC/B2P,EAAezW,EAAK8G,WAAW,EAAE,EAClChoH,GAAQ03H,cAAexW,EAAKroG,KAAK6+G,EAAc13H,EAAQ03H,cACvD13H,EAAQ+5H,YAAa7Y,EAAKroG,KAAKkhH,EAAc/5H,EAAQ+5H,YACrD/5H,EAAQ23H,cAAezW,EAAKroG,KAAK8+G,EAAc33H,EAAQ23H,cAM1DtlJ,KAAKqlJ,aAAeA,EAMpBrlJ,KAAKslJ,aAAeA,EAMpBtlJ,KAAK0nJ,WAAaA,CAoBlB,IAAIjC,GAAWzlJ,KAAKylJ,SAAsC,mBAApB93H,GAAgB,SAAkBA,EAAQ83H,SAAWp5G,OAAOG,UAG9Fm7G,EAAQ,GAAI/T,GAAS/D,EAAMC,GAAO2V,EAASA,GAC3CC,EAAK,GAAI7W,GAAKxiI,OACds5I,EAAK,GAAI9W,GAAKxiI,OACdu7I,EAAK,GAAI/Y,GAAKxiI,OACdmrF,EAAK,GAAIq3C,GAAKxiI,MA0BlB,IAzBAs7I,EAAM/B,UAAY,WAEd,MAAO/W,GAAK5kG,IAAI29G,EAAGpwD,IAEvBmwD,EAAME,eAAiB,WACnB,GAAItpF,GAAIv+D,KAAKu+D,EACTz5D,EAAK+qI,EAAMloI,SACX3C,EAAK8qI,EAAMnoI,QACfknI,GAAKxoI,OAAOq/I,EAAGL,EAAaxV,EAAMvpI,OAClCuoI,EAAKxoI,OAAOs/I,EAAGL,EAAaxV,EAAMxpI,OAClCuoI,EAAK7lG,IAAI4+G,EAAG5iJ,EAAG2gJ,GACf9W,EAAKkB,IAAI6X,EAAGA,EAAG9iJ,GACf+pI,EAAKkB,IAAI6X,EAAGA,EAAGlC,GACf7W,EAAKxoI,OAAOmxF,EAAEkwD,EAAW7X,EAAMvpI,MAAMpE,KAAKC,GAAG,GAE7Co8D,EAAE,IAAMi5B,EAAE,GACVj5B,EAAE,IAAMi5B,EAAE,GACVj5B,EAAE,IAAMswE,EAAKwG,YAAYqQ,EAAGluD,GAAKq3C,EAAKwG,YAAY79C,EAAEowD,GACpDrpF,EAAE,GAAKi5B,EAAE,GACTj5B,EAAE,GAAKi5B,EAAE,GACTj5B,EAAE,GAAKswE,EAAKwG,YAAYsQ,EAAGnuD,IAE/Bx3F,KAAK0kJ,UAAUpgJ,KAAKqjJ,IAGhBh6H,EAAQm6H,sBAAsB,CAC9B,GAAIT,GAAM,GAAIU,GAAuBlY,EAAMC,GAAO2V,EAASA,EAC3DzlJ,MAAK0kJ,UAAUpgJ,KAAK+iJ,GAQxBrnJ,KAAK2H,SAAW,EAGhB3H,KAAKwkH,SAAW,EAOhBxkH,KAAKgmJ,kBAAiD,mBAAtBr4H,GAAkB,YAAkB,GAAO,EAO3E3tB,KAAK8lJ,kBAAiD,mBAAtBn4H,GAAkB,YAAkB,GAAO,EAO3E3tB,KAAKimJ,WAA0C,mBAAtBt4H,GAAkB,WAAkBA,EAAQs4H,WAAa,EAOlFjmJ,KAAK+lJ,WAA0C,mBAAtBp4H,GAAkB,WAAkBA,EAAQo4H,WAAa,EAGlF/lJ,KAAKgoJ,mBAAqB,GAAI1S,GAAgBzF,EAAMC,GACpD9vI,KAAKioJ,mBAAqB,GAAI3S,GAAgBzF,EAAMC,GAGpD9vI,KAAKgoJ,mBAAmB5B,SAAWpmJ,KAAKioJ,mBAAmB7B,SAAW,EACtEpmJ,KAAKgoJ,mBAAmBvC,SAAWzlJ,KAAKioJ,mBAAmBxC,SAAWA,EAOtEzlJ,KAAKkoJ,cAAgB,GAAItU,GAAS/D,EAAMC,GAOxC9vI,KAAKmoJ,cAAe,EAOpBnoJ,KAAKooJ,WAAa,CAElB,EAAA,GAAItwC,GAAO93G,KACPkoJ,EAAgBloJ,KAAKkoJ,aACfA,GAAcG,UACxBH,EAActC,UAAY,WAAY,MAAO,IAC7CsC,EAAcG,UAAY,WACtB,GAAI9pF,GAAIv+D,KAAKu+D,EACTqzE,EAAK5xI,KAAK6vI,MACV0C,EAAKvyI,KAAK8vI,MACVjxH,EAAK+yH,EAAGptB,SACR8jC,EAAK/V,EAAG/tB,SACR+jC,EAAK3W,EAAGxtB,gBACRokC,EAAKjW,EAAGnuB,eACZ,OAAOpkH,MAAKyoJ,MAAMlqF,EAAE1/C,EAAG0pI,EAAGD,EAAGE,GAAM1wC,EAAKswC,YAhMhD,GAAyP7D,IAA7OpuD,EAAQ,wBAAuHA,EAAQ,uBAAmHA,EAAQ,iBAC1Qm/C,EAAkBn/C,EAAQ,gCAC1By9C,EAAWz9C,EAAQ,yBACnB04C,EAAO14C,EAAQ,gBACf4xD,EAAyB5xD,EAAQ,sCAErCx0D,GAAOD,QAAU+lH,EA8LjBA,EAAoB5jJ,UAAY,GAAI0gJ,EAEpC,IAAImE,GAAa7Z,EAAKxiI,SAClBk5I,EAAe1W,EAAKxiI,SACpBm5I,EAAe3W,EAAKxiI,SACpBs8I,EAAkB9Z,EAAKxiI,SACvBu8I,EAAkB/Z,EAAKxiI,SACvBw3F,EAAMgrC,EAAKxiI,QAMfo7I,GAAoB5jJ,UAAU2V,OAAS,WACnC,GAAIw9H,GAAMh3I,KAAK0kJ,UACXiD,EAAQ3Q,EAAI,GACZ+O,EAAa/lJ,KAAK+lJ,WAClBE,EAAajmJ,KAAKimJ,WAClB+B,EAAqBhoJ,KAAKgoJ,mBAC1BC,EAAqBjoJ,KAAKioJ,mBAC1BpY,EAAQ7vI,KAAK6vI,MACbC,EAAQ9vI,KAAK8vI,MACb4X,EAAa1nJ,KAAK0nJ,WAClBrC,EAAerlJ,KAAKqlJ,aACpBC,EAAetlJ,KAAKslJ,YAExBqC,GAAME,iBAGNhZ,EAAKxoI,OAAOqiJ,EAAiBhB,EAAiB7X,EAAMvpI,OACpDuoI,EAAKxoI,OAAOsiJ,EAAiBtD,EAAiBxV,EAAMvpI,OACpDuoI,EAAK7lG,IAAIu8G,EAAoBoD,EAAiB9Y,EAAMloI,UACpDknI,EAAKxoI,OAAOuiJ,EAAiBtD,EAAiBxV,EAAMxpI,OACpDuoI,EAAK7lG,IAAIw8G,EAAoBoD,EAAiB9Y,EAAMnoI,SAEpD,IAAIkhJ,GAAc7oJ,KAAK2H,SAAWknI,EAAK5kG,IAAIu7G,EAAakD,GAAc7Z,EAAK5kG,IAAIs7G,EAAamD,EAG5F,IAAG1oJ,KAAKmoJ,aAAa,CAEjB,GAAI5pF,GAAIv+D,KAAKkoJ,cAAc3pF,CAC3BA,GAAE,GAAKmqF,EAAW,GAClBnqF,EAAE,GAAKmqF,EAAW,GAClBnqF,EAAE,GAAKswE,EAAKwG,YAAYqT,EAAWE,GACnCrqF,EAAE,IAAMmqF,EAAW,GACnBnqF,EAAE,IAAMmqF,EAAW,GACnBnqF,EAAE,IAAMswE,EAAKwG,YAAYqT,EAAWC,GAyBxC,GAAG3oJ,KAAK8lJ,mBAAqB+C,EAAc9C,EAEvClX,EAAKzoI,MAAM4hJ,EAAmB/P,QAASyQ,EAAY,IACnD7Z,EAAKkB,IAAIiY,EAAmBlQ,cAAeyN,EAAc1V,EAAMloI,UAC/DknI,EAAKkB,IAAIiY,EAAmBjQ,cAAeyN,EAAc1V,EAAMnoI,UAC/DknI,EAAKzoI,MAAMy9F,EAAI6kD,EAAW3C,GAC1BlX,EAAK7lG,IAAIg/G,EAAmBlQ,cAAckQ,EAAmBlQ,cAAcj0C,GACpC,KAApCmzC,EAAI3zI,QAAQ2kJ,IACXhR,EAAI1yI,KAAK0jJ,OAEV,CACH,GAAIjxI,GAAMigI,EAAI3zI,QAAQ2kJ,EACX,MAARjxI,GACCigI,EAAInqI,OAAOkK,EAAI,GAIvB,GAAG/W,KAAKgmJ,mBAAmCC,EAAd4C,EAEzBha,EAAKzoI,MAAM6hJ,EAAmBhQ,QAASyQ,EAAY,GACnD7Z,EAAKkB,IAAIkY,EAAmBnQ,cAAeyN,EAAc1V,EAAMloI,UAC/DknI,EAAKkB,IAAIkY,EAAmBlQ,cAAeyN,EAAc1V,EAAMnoI,UAC/DknI,EAAKzoI,MAAMy9F,EAAI6kD,EAAWzC,GAC1BpX,EAAKkB,IAAIkY,EAAmBlQ,cAAckQ,EAAmBlQ,cAAcl0C,GACpC,KAApCmzC,EAAI3zI,QAAQ4kJ,IACXjR,EAAI1yI,KAAK2jJ,OAEV,CACH,GAAIlxI,GAAMigI,EAAI3zI,QAAQ4kJ,EACX,MAARlxI,GACCigI,EAAInqI,OAAOkK,EAAI,KAS3B0wI,EAAoB5jJ,UAAUilJ,YAAc,WACrC9oJ,KAAKmoJ,eAGRnoJ,KAAK0kJ,UAAUpgJ,KAAKtE,KAAKkoJ,eACzBloJ,KAAKmoJ,cAAe,IAOxBV,EAAoB5jJ,UAAUklJ,aAAe,WACzC,GAAI/oJ,KAAKmoJ,aAAT,CAGA,GAAIhkJ,GAAInE,KAAK0kJ,UAAUrhJ,QAAQrD,KAAKkoJ,cACpCloJ,MAAK0kJ,UAAU73I,OAAO1I,EAAE,GACxBnE,KAAKmoJ,cAAe,IASxBV,EAAoB5jJ,UAAUmlJ,UAAY,SAAUC,EAAOC,GAClC,gBAAZ,IACLlpJ,KAAKimJ,WAAagD,EAClBjpJ,KAAKgmJ,mBAAoB,IAEzBhmJ,KAAKimJ,WAAagD,EAClBjpJ,KAAKgmJ,mBAAoB,GAGR,gBAAZ,IACLhmJ,KAAK+lJ,WAAamD,EAClBlpJ,KAAK8lJ,mBAAoB,IAEzB9lJ,KAAK+lJ,WAAamD,EAClBlpJ,KAAK8lJ,mBAAoB,MAK9BvC,+BAA+B,GAAGC,wBAAwB,GAAG2F,sCAAsC,GAAG/Z,eAAe,GAAGoX,eAAe,GAAGvc,oBAAsB,EAAEC,qBAAuB,IAAIkf,IAAI,SAASjzD,EAAQx0D,GA4CrN,QAAS0nH,GAAmBxZ,EAAOC,EAAOniH,GACtCA,EAAUA,MACV42H,EAAWxgJ,KAAK/D,KAAK6vI,EAAMC,EAAMyU,EAAWS,SAASr3H,EAErD,IAAI83H,GAAWzlJ,KAAKylJ,SAAwC,mBAAtB93H,GAAgB,SAAoBA,EAAQ83H,SAAWp5G,OAAOG,SAKpGxsC,MAAKspJ,OAASza,EAAKxiI,SAKnBrM,KAAKupJ,OAAS1a,EAAKxiI,SAEhBshB,EAAQ67H,YAEP3a,EAAKkB,IAAI/vI,KAAKspJ,OAAQ37H,EAAQ67H,WAAY3Z,EAAMloI,UAChDknI,EAAKkB,IAAI/vI,KAAKupJ,OAAQ57H,EAAQ67H,WAAY1Z,EAAMnoI,UAEhDknI,EAAKxoI,OAAOrG,KAAKspJ,OAAQtpJ,KAAKspJ,QAASzZ,EAAMvpI,OAC7CuoI,EAAKxoI,OAAOrG,KAAKupJ,OAAQvpJ,KAAKupJ,QAASzZ,EAAMxpI,SAG7CuoI,EAAKroG,KAAKxmC,KAAKspJ,OAAQ37H,EAAQ87H,aAC/B5a,EAAKroG,KAAKxmC,KAAKupJ,OAAQ57H,EAAQ+7H,aAInC,IAAI1S,GAAMh3I,KAAK0kJ,WACX,GAAI9Q,GAAS/D,EAAMC,GAAO2V,EAASA,GACnC,GAAI7R,GAAS/D,EAAMC,GAAO2V,EAASA,IAGnClhJ,EAAIyyI,EAAI,GACRxyI,EAAIwyI,EAAI,GACRl/B,EAAO93G,IAEXuE,GAAEqhJ,UAAY,WAMV,MALA/W,GAAKxoI,OAAOsjJ,EAAa7xC,EAAKwxC,OAAQzZ,EAAMvpI,OAC5CuoI,EAAKxoI,OAAOujJ,EAAa9xC,EAAKyxC,OAAQzZ,EAAMxpI,OAC5CuoI,EAAK7lG,IAAIpf,EAAGkmH,EAAMnoI,SAAUiiJ,GAC5B/a,EAAKkB,IAAInmH,EAAGA,EAAGimH,EAAMloI,UACrBknI,EAAKkB,IAAInmH,EAAGA,EAAG+/H,GACR9a,EAAK5kG,IAAIrgB,EAAE29H,IAGtB/iJ,EAAEohJ,UAAY,WAMV,MALA/W,GAAKxoI,OAAOsjJ,EAAa7xC,EAAKwxC,OAAQzZ,EAAMvpI,OAC5CuoI,EAAKxoI,OAAOujJ,EAAa9xC,EAAKyxC,OAAQzZ,EAAMxpI,OAC5CuoI,EAAK7lG,IAAIpf,EAAGkmH,EAAMnoI,SAAUiiJ,GAC5B/a,EAAKkB,IAAInmH,EAAGA,EAAGimH,EAAMloI,UACrBknI,EAAKkB,IAAInmH,EAAGA,EAAG+/H,GACR9a,EAAK5kG,IAAIrgB,EAAE8rH,IAGtBlxI,EAAE4hJ,SAAW7hJ,EAAE6hJ,UAAYX,EAC3BjhJ,EAAEihJ,SAAWlhJ,EAAEkhJ,SAAYA,EAE3BzlJ,KAAKkoJ,cAAgB,GAAI2B,GAA2Bha,EAAMC,GAO1D9vI,KAAKmoJ,cAAe,EAQpBnoJ,KAAKsG,MAAQ,EAObtG,KAAKgmJ,mBAAoB,EAOzBhmJ,KAAK8lJ,mBAAoB,EAOzB9lJ,KAAKimJ,WAAa,EAOlBjmJ,KAAK+lJ,WAAa,EAElB/lJ,KAAKgoJ,mBAAqB,GAAID,GAAuBlY,EAAMC,GAC3D9vI,KAAKioJ,mBAAqB,GAAIF,GAAuBlY,EAAMC,GAC3D9vI,KAAKgoJ,mBAAmB5B,SAAW,EACnCpmJ,KAAKioJ,mBAAmBxC,SAAW,EAvJvC,GAAwPlB,IAA5OpuD,EAAQ,wBAAuHA,EAAQ,uBAAkHA,EAAQ,iBACzQy9C,EAAWz9C,EAAQ,yBACnB0zD,EAA6B1zD,EAAQ,2CACrC4xD,EAAyB5xD,EAAQ,uCACjC04C,EAAO14C,EAAQ,eAEnBx0D,GAAOD,QAAU2nH,CAEjB,IAAIM,GAAc9a,EAAKxiI,SACnBu9I,EAAc/a,EAAKxiI,SACnBk7I,EAAQ1Y,EAAK8G,WAAW,EAAE,GAC1BD,EAAQ7G,EAAK8G,WAAW,EAAE,GAC1B/rH,EAAIilH,EAAKxiI,QA6Ibg9I,GAAmBxlJ,UAAY,GAAI0gJ,GAQnC8E,EAAmBxlJ,UAAUmlJ,UAAY,SAAUC,EAAOC,GACjC,gBAAZ,IACLlpJ,KAAKimJ,WAAagD,EAClBjpJ,KAAKgmJ,mBAAoB,IAEzBhmJ,KAAKimJ,WAAagD,EAClBjpJ,KAAKgmJ,mBAAoB,GAGR,gBAAZ,IACLhmJ,KAAK+lJ,WAAamD,EAClBlpJ,KAAK8lJ,mBAAoB,IAEzB9lJ,KAAK+lJ,WAAamD,EAClBlpJ,KAAK8lJ,mBAAoB,IAIjCuD,EAAmBxlJ,UAAU2V,OAAS,WAClC,GAAIq2H,GAAS7vI,KAAK6vI,MACdC,EAAS9vI,KAAK8vI,MACdwZ,EAAStpJ,KAAKspJ,OACdC,EAASvpJ,KAAKupJ,OACdvS,EAASh3I,KAAK0kJ,UAGdngJ,GAFSyyI,EAAI,GACJA,EAAI,GACTA,EAAI,IACRxyI,EAAIwyI,EAAI,GACR+O,EAAa/lJ,KAAK+lJ,WAClBE,EAAajmJ,KAAKimJ,WAClB+B,EAAqBhoJ,KAAKgoJ,mBAC1BC,EAAqBjoJ,KAAKioJ,mBAE1B6B,EAAW9pJ,KAAKsG,MAAQwpI,EAAMxpI,MAAQupI,EAAMvpI,KAEhD,IAAGtG,KAAK8lJ,mBAAqBgE,EAAW/D,EACpCiC,EAAmB1hJ,MAAQy/I,EACY,KAApC/O,EAAI3zI,QAAQ2kJ,IACXhR,EAAI1yI,KAAK0jJ,OAEV,CACH,GAAIjxI,GAAMigI,EAAI3zI,QAAQ2kJ,EACX,MAARjxI,GACCigI,EAAInqI,OAAOkK,EAAI,GAIvB,GAAG/W,KAAKgmJ,mBAAgCC,EAAX6D,EACzB7B,EAAmB3hJ,MAAQ2/I,EACY,KAApCjP,EAAI3zI,QAAQ4kJ,IACXjR,EAAI1yI,KAAK2jJ,OAEV,CACH,GAAIlxI,GAAMigI,EAAI3zI,QAAQ4kJ,EACX,MAARlxI,GACCigI,EAAInqI,OAAOkK,EAAI,GA6BvB83H,EAAKxoI,OAAOsjJ,EAAaL,EAAQzZ,EAAMvpI,OACvCuoI,EAAKxoI,OAAOujJ,EAAaL,EAAQzZ,EAAMxpI,OAIvC/B,EAAEg6D,EAAE,GAAK,GACTh6D,EAAEg6D,EAAE,GAAM,EACVh6D,EAAEg6D,EAAE,IAAMswE,EAAKwG,YAAYsU,EAAYpC,GACvChjJ,EAAEg6D,EAAE,GAAM,EACVh6D,EAAEg6D,EAAE,GAAM,EACVh6D,EAAEg6D,EAAE,GAAMswE,EAAKwG,YAAYuU,EAAYrC,GAEvC/iJ,EAAE+5D,EAAE,GAAM,EACV/5D,EAAE+5D,EAAE,GAAK,GACT/5D,EAAE+5D,EAAE,IAAMswE,EAAKwG,YAAYsU,EAAYjU,GACvClxI,EAAE+5D,EAAE,GAAM,EACV/5D,EAAE+5D,EAAE,GAAM,EACV/5D,EAAE+5D,EAAE,GAAMswE,EAAKwG,YAAYuU,EAAYlU,IAO3C2T,EAAmBxlJ,UAAUilJ,YAAc,WACpC9oJ,KAAKmoJ,eAGRnoJ,KAAK0kJ,UAAUpgJ,KAAKtE,KAAKkoJ,eACzBloJ,KAAKmoJ,cAAe,IAOxBkB,EAAmBxlJ,UAAUklJ,aAAe,WACxC,GAAI/oJ,KAAKmoJ,aAAT,CAGA,GAAIhkJ,GAAInE,KAAK0kJ,UAAUrhJ,QAAQrD,KAAKkoJ,cACpCloJ,MAAK0kJ,UAAU73I,OAAO1I,EAAE,GACxBnE,KAAKmoJ,cAAe,IASxBkB,EAAmBxlJ,UAAUkmJ,eAAiB,WAC1C,QAAS/pJ,KAAKmoJ,cAQlBkB,EAAmBxlJ,UAAUmmJ,cAAgB,SAASjzF,GAClD,GAAI/2D,KAAKmoJ,aAAT,CAGA,GAAIhkJ,GAAInE,KAAK0kJ,UAAUrhJ,QAAQrD,KAAKkoJ,cACpCloJ,MAAK0kJ,UAAUvgJ,GAAGyzI,iBAAmB7gF,IAQzCsyF,EAAmBxlJ,UAAUomJ,cAAgB,WACzC,MAAIjqJ,MAAKmoJ,aAGFnoJ,KAAKkoJ,cAActQ,kBAFf,KAKZ4L,wBAAwB,GAAG2F,sCAAsC,GAAGe,0CAA0C,GAAG9a,eAAe,GAAGoX,eAAe,GAAGvc,oBAAsB,EAAEC,qBAAuB,IAAIigB,IAAI,SAASh0D,EAAQx0D,GAkBhO,QAASglH,GAAkB9W,EAAOC,EAAOniH,GACrCA,EAAUA,MACVimH,EAAS7vI,KAAK/D,KAAK6vI,EAAMC,GAAOzjG,OAAOG,UAAUH,OAAOG,WACxDxsC,KAAKsG,MAAQqnB,EAAQrnB,OAAS,EAQ9BtG,KAAK29B,MAAgC,gBAAjBhQ,GAAa,MAAeA,EAAQgQ,MAAQ,EAEhE39B,KAAK8mJ,SAAS9mJ,KAAK29B,OA9BvB,CAAA,GAAmPi2G,IAAvOz9C,EAAQ,wBAAuHA,EAAQ,uBAA2GA,EAAQ,cAC3PA,GAAQ,gBAEnBx0D,EAAOD,QAAUilH,EA6BjBA,EAAkB9iJ,UAAY,GAAI+vI,GAClC+S,EAAkB9iJ,UAAUsB,YAAcwhJ,EAE1CA,EAAkB9iJ,UAAU+hJ,UAAY,WACpC,MAAO5lJ,MAAK29B,MAAQ39B,KAAK6vI,MAAMvpI,MAAQtG,KAAK8vI,MAAMxpI,MAAQtG,KAAKsG,OAQnEqgJ,EAAkB9iJ,UAAUijJ,SAAW,SAASnpH,GAC5C,GAAI4gC,GAAIv+D,KAAKu+D,CACbA,GAAE,GAAM5gC,EACR4gC,EAAE,GAAK,GACPv+D,KAAK29B,MAAQA,GAQjBgpH,EAAkB9iJ,UAAU+iJ,aAAe,SAASG,GAChD/mJ,KAAKylJ,SAAYsB,EACjB/mJ,KAAKomJ,UAAYW,KAGlB3X,eAAe,GAAGgb,aAAa,GAAGngB,oBAAsB,EAAEC,qBAAuB,IAAImgB,IAAI,SAASl0D,EAAQx0D,GAe7G,QAAS2zG,GAAgBzF,EAAOC,GAC5B8D,EAAS7vI,KAAK/D,KAAM6vI,EAAOC,EAAO,EAAGzjG,OAAOG,WAO5CxsC,KAAK83I,cAAgBjJ,EAAKxiI,SAC1BrM,KAAK6/I,eAAiBhR,EAAKxiI,SAO3BrM,KAAK+3I,cAAgBlJ,EAAKxiI,SAO1BrM,KAAKi4I,QAAUpJ,EAAKxiI,SAOpBrM,KAAK0zI,YAAc,EAQnB1zI,KAAKy3I,aAAc,EAOnBz3I,KAAKu3I,OAAS,KAOdv3I,KAAKw3I,OAAS,KAlElB,GAAiP5D,IAArOz9C,EAAQ,wBAAuHA,EAAQ,uBAAyGA,EAAQ,eAChQ04C,EAAO14C,EAAQ,eAEnBx0D,GAAOD,QAAU4zG,EAiEjBA,EAAgBzxI,UAAY,GAAI+vI,GAChC0B,EAAgBzxI,UAAUsB,YAAcmwI,EACxCA,EAAgBzxI,UAAUymJ,SAAW,SAASjlJ,EAAEC,EAAEm1B,GAC9C,GAAIm3G,GAAK5xI,KAAK6vI,MACV0C,EAAKvyI,KAAK8vI,MACV4V,EAAK1lJ,KAAK83I,cACV6N,EAAK3lJ,KAAK+3I,cACVjzI,EAAK8sI,EAAGjqI,SACR3C,EAAKutI,EAAG5qI,SAERk4I,EAAiB7/I,KAAK6/I,eACtB/hI,EAAI9d,KAAKi4I,QACT15E,EAAIv+D,KAAKu+D,EAGT8nF,EAAOxX,EAAKwG,YAAYqQ,EAAG5nI,GAC3BwoI,EAAOzX,EAAKwG,YAAYsQ,EAAG7nI,EAG/BygD,GAAE,IAAMzgD,EAAE,GACVygD,EAAE,IAAMzgD,EAAE,GACVygD,EAAE,IAAM8nF,EACR9nF,EAAE,GAAKzgD,EAAE,GACTygD,EAAE,GAAKzgD,EAAE,GACTygD,EAAE,GAAK+nF,EAGPzX,EAAK7lG,IAAI62G,EAAe76I,EAAG2gJ,GAC3B9W,EAAKkB,IAAI8P,EAAeA,EAAe/6I,GACvC+pI,EAAKkB,IAAI8P,EAAeA,EAAe6F,EAGvC,IAAI6E,GAAIC,CACLxqJ,MAAKy3I,aAAoC,IAArBz3I,KAAK0zI,aACxB8W,EAAK,EACLD,EAAM,EAAEjlJ,GAAI,EAAEtF,KAAK0zI,aAAe1zI,KAAKqoJ,cAEvCmC,EAAK3b,EAAK5kG,IAAInsB,EAAE+hI,GAAkB7/I,KAAK0mB,OACvC6jI,EAAKvqJ,KAAKqoJ,YAGd,IAAIoC,GAAOzqJ,KAAK0qJ,cACZvsF,GAAMqsF,EAAKnlJ,EAAIklJ,EAAKjlJ,EAAIm1B,EAAEgwH,CAE9B,OAAOtsF,MAGRixE,eAAe,GAAGgb,aAAa,GAAGngB,oBAAsB,EAAEC,qBAAuB,IAAIygB,IAAI,SAASx0D,EAAQx0D,GAgB7G,QAASiyG,GAAS/D,EAAOC,EAAOsW,EAAUX,GAOtCzlJ,KAAKomJ,SAA8B,mBAAb,IAA4B/5G,OAAOG,UAAY45G,EAOrEpmJ,KAAKylJ,SAA8B,mBAAb,GAA2Bp5G,OAAOG,UAAYi5G,EAOpEzlJ,KAAK6vI,MAAQA,EAOb7vI,KAAK8vI,MAAQA,EAOb9vI,KAAK2zI,UAAYC,EAASC,kBAO1B7zI,KAAK8zI,WAAaF,EAASG,mBAO3B/zI,KAAKu+D,EAAI,GAAIn6B,GAAMwmH,WAAW,EAC9B,KAAI,GAAIzmJ,GAAE,EAAK,EAAFA,EAAKA,IACdnE,KAAKu+D,EAAEp6D,GAAG,CAGdnE,MAAK0mB,OAAS,EAEd1mB,KAAKqF,EAAI,EACTrF,KAAKsF,EAAI,EACTtF,KAAK44F,QAAU,EACf54F,KAAK+1D,SAAW,EAAE,GAMlB/1D,KAAKi+B,aAAc,EAOnBj+B,KAAK8mD,WAAa,EAMlB9mD,KAAK43I,iBAAmB,EAMxB53I,KAAK42D,SAAU,EAnGPu/B,EAAQ,wBAAuHA,EAAQ,sBAAmFx0D,GAAOD,QAAUkyG,CAEvP,EAAA,GAAI/E,GAAO14C,EAAQ,gBACf/xD,EAAQ+xD,EAAQ,iBACTA,GAAQ,mBAiGnBy9C,EAAS/vI,UAAUsB,YAAcyuI,EAQjCA,EAASC,kBAAoB,IAQ7BD,EAASG,mBAAqB,EAM9BH,EAAS/vI,UAAU2V,OAAS,WACxB,GAAIw1D,GAAIhvE,KAAK2zI,UACTnuI,EAAIxF,KAAK8zI,WACTr5G,EAAIz6B,KAAK+1D,QAEb/1D,MAAKqF,EAAI,GAAOo1B,GAAK,EAAI,EAAIj1B,IAC7BxF,KAAKsF,EAAK,EAAME,GAAM,EAAI,EAAIA,GAC9BxF,KAAK44F,QAAU,GAAOn+D,EAAIA,EAAIu0C,GAAK,EAAI,EAAIxpE,IAE3CxF,KAAKi+B,aAAc,GAQvB21G,EAAS/vI,UAAU4kJ,MAAQ,SAASlqF,EAAE1/C,EAAG0pI,EAAGD,EAAGE,GAC3C,MAAQjqF,GAAE,GAAK1/C,EAAG,GACV0/C,EAAE,GAAK1/C,EAAG,GACV0/C,EAAE,GAAKgqF,EACPhqF,EAAE,GAAK+pF,EAAG,GACV/pF,EAAE,GAAK+pF,EAAG,GACV/pF,EAAE,GAAKiqF,GAQnB5U,EAAS/vI,UAAUymJ,SAAW,SAASjlJ,EAAEC,EAAEm1B,GACvC,GAAI8vH,GAAKvqJ,KAAKqoJ,YACVmC,EAAKxqJ,KAAK4lJ,YACV6E,EAAOzqJ,KAAK0qJ,aAChB,QAASF,EAAKnlJ,EAAIklJ,EAAKjlJ,EAAImlJ,EAAKhwH,EAQpC,IAAIowH,GAAKhc,EAAKxiI,SACVy+I,EAAKjc,EAAKxiI,QACdunI,GAAS/vI,UAAU+hJ,UAAY,WAC3B,GAAIrnF,GAAIv+D,KAAKu+D,EACTqzE,EAAK5xI,KAAK6vI,MACV0C,EAAKvyI,KAAK8vI,MAGV0K,GAFK5I,EAAGjqI,SACH4qI,EAAG5qI,SACHiqI,EAAGtrI,OACRo0I,EAAKnI,EAAGjsI,KAEZ,OAAOtG,MAAKyoJ,MAAMlqF,EAAGssF,EAAIrQ,EAAIsQ,EAAIpQ,GAAM16I,KAAK0mB,QAQhDktH,EAAS/vI,UAAUwkJ,UAAY,WAC3B,GAAI9pF,GAAIv+D,KAAKu+D,EACTqzE,EAAK5xI,KAAK6vI,MACV0C,EAAKvyI,KAAK8vI,MACVjxH,EAAK+yH,EAAGptB,SACR8jC,EAAK/V,EAAG/tB,SACR+jC,EAAK3W,EAAGxtB,gBACRokC,EAAKjW,EAAGnuB,eACZ,OAAOpkH,MAAKyoJ,MAAMlqF,EAAE1/C,EAAG0pI,EAAGD,EAAGE,GAAMxoJ,KAAK43I,kBAQ5ChE,EAAS/vI,UAAUknJ,gBAAkB,WACjC,GAAIxsF,GAAIv+D,KAAKu+D,EACTqzE,EAAK5xI,KAAK6vI,MACV0C,EAAKvyI,KAAK8vI,MACVjxH,EAAK+yH,EAAGoZ,QACR1C,EAAK/V,EAAGyY,QACRzC,EAAK3W,EAAGqZ,QACRzC,EAAKjW,EAAG0Y,OACZ,OAAOjrJ,MAAKyoJ,MAAMlqF,EAAE1/C,EAAG0pI,EAAGD,EAAGE,GAQjC,IAAI0C,GAAOrc,EAAKxiI,SACZ8+I,EAAOtc,EAAKxiI,QAChBunI,GAAS/vI,UAAU6mJ,YAAc,WAC7B,GAAI9Y,GAAK5xI,KAAK6vI,MACV0C,EAAKvyI,KAAK8vI,MACVsb,EAAKxZ,EAAGvvF,MACRgpG,EAAKzZ,EAAG0Z,aACRC,EAAKhZ,EAAGlwF,MACRmpG,EAAKjZ,EAAG+Y,aACRG,EAAW7Z,EAAG8Z,aACdC,EAAWpZ,EAAGmZ,aACdE,EAAQha,EAAGia,gBACXC,EAAQvZ,EAAGsZ,gBACXttF,EAAIv+D,KAAKu+D,CAKb,OAHAswE,GAAKzoI,MAAM8kJ,EAAME,EAAGK,GACpB5c,EAAKzoI,MAAM+kJ,EAAMI,EAAGI,GAEb3rJ,KAAKyoJ,MAAMlqF,EAAE2sF,EAAKG,EAAGO,EAAMT,EAAKK,EAAGM,IAQ9ClY,EAAS/vI,UAAUkoJ,aAAe,WAC9B,GAAIna,GAAK5xI,KAAK6vI,MACV0C,EAAKvyI,KAAK8vI,MACV2b,EAAW7Z,EAAG8Z,aACdC,EAAWpZ,EAAGmZ,aACdE,EAAQha,EAAGia,gBACXC,EAAQvZ,EAAGsZ,gBACXttF,EAAIv+D,KAAKu+D,CAEb,OAAQA,GAAE,GAAKA,EAAE,GAAKktF,EACdltF,EAAE,GAAKA,EAAE,GAAKktF,EACdltF,EAAE,GAAKA,EAAE,GAAQqtF,EACjBrtF,EAAE,GAAKA,EAAE,GAAKotF,EACdptF,EAAE,GAAKA,EAAE,GAAKotF,EACdptF,EAAE,GAAKA,EAAE,GAAQutF,EAG7B,EAAA,GAAIE,GAAoBnd,EAAKxiI,SACzB4/I,EAAkBpd,EAAKxiI,SACvB6/I,EAAkBrd,EAAKxiI,QACLwiI,GAAKxiI,SACLwiI,EAAKxiI,SACFwiI,EAAKxiI,SAO9BunI,EAAS/vI,UAAUsoJ,aAAe,SAASC,GACvC,GAAIxa,GAAK5xI,KAAK6vI,MACV0C,EAAKvyI,KAAK8vI,MACV54G,EAAO80H,EACPK,EAAKJ,EACLK,EAAKJ,EAGLT,EAAW7Z,EAAG8Z,aACdC,EAAWpZ,EAAGmZ,aACdE,EAAQha,EAAGia,gBACXC,EAAQvZ,EAAGsZ,gBAEXttF,EAAIv+D,KAAKu+D,CAEb8tF,GAAG,GAAK9tF,EAAE,GACV8tF,EAAG,GAAK9tF,EAAE,GACV+tF,EAAG,GAAK/tF,EAAE,GACV+tF,EAAG,GAAK/tF,EAAE,GAIVswE,EAAKzoI,MAAM8wB,EAAMm1H,EAAIZ,EAASW,GAC9Bvd,EAAK7lG,IAAK4oG,EAAGoZ,QAASpZ,EAAGoZ,QAAS9zH,GAIlC06G,EAAGqZ,SAAWW,EAAQrtF,EAAE,GAAK6tF,EAG7Bvd,EAAKzoI,MAAM8wB,EAAMo1H,EAAIX,EAASS,GAC9Bvd,EAAK7lG,IAAKupG,EAAGyY,QAASzY,EAAGyY,QAAS9zH,GAElCq7G,EAAG0Y,SAAWa,EAAQvtF,EAAE,GAAK6tF,GASjCxY,EAAS/vI,UAAU0oJ,YAAc,SAASC,GACtC,MAAO,IAAOxsJ,KAAK+rJ,eAAiBS,MAGrCpd,eAAe,GAAGyB,kBAAkB,GAAGxB,iBAAiB,GAAGpF,oBAAsB,EAAEC,qBAAuB,IAAIuiB,IAAI,SAASt2D,EAAQx0D,GAiBtI,QAAS4zG,GAAiB1F,EAAOC,EAAOsD,GACpCQ,EAAS7vI,KAAK/D,KAAM6vI,EAAOC,GAAQsD,EAAWA,GAO9CpzI,KAAK83I,cAAgBjJ,EAAKxiI,SAO1BrM,KAAK+3I,cAAgBlJ,EAAKxiI,SAO1BrM,KAAKw3F,EAAIq3C,EAAKxiI,SAOdrM,KAAKizI,oBAQLjzI,KAAKu3I,OAAS,KAQdv3I,KAAKw3I,OAAS,KAOdx3I,KAAKqzI,oBAAsB,GApE/B,CAAA,GAAkPxE,IAAtO14C,EAAQ,wBAAuHA,EAAQ,uBAAsGA,EAAQ,iBAC7Py9C,EAAWz9C,EAAQ,aACXA,GAAQ,kBAEpBx0D,EAAOD,QAAU6zG,EAkEjBA,EAAiB1xI,UAAY,GAAI+vI,GACjC2B,EAAiB1xI,UAAUsB,YAAcowI,EAQzCA,EAAiB1xI,UAAU8zI,aAAe,SAASvE,GAC/CpzI,KAAKylJ,SAAWrS,EAChBpzI,KAAKomJ,UAAYhT,GAQrBmC,EAAiB1xI,UAAU6oJ,aAAe,WACtC,MAAO1sJ,MAAKylJ,UAGhBlQ,EAAiB1xI,UAAUymJ,SAAW,SAASjlJ,EAAEC,EAAEm1B,GAC/C,GAEIirH,IAFK1lJ,KAAK6vI,MACL7vI,KAAK8vI,MACL9vI,KAAK83I,eACV6N,EAAK3lJ,KAAK+3I,cACVvgD,EAAIx3F,KAAKw3F,EACTj5B,EAAIv+D,KAAKu+D,CAIbA,GAAE,IAAMi5B,EAAE,GACVj5B,EAAE,IAAMi5B,EAAE,GACVj5B,EAAE,IAAMswE,EAAKwG,YAAYqQ,EAAGluD,GAC5Bj5B,EAAE,GAAKi5B,EAAE,GACTj5B,EAAE,GAAKi5B,EAAE,GACTj5B,EAAE,GAAKswE,EAAKwG,YAAYsQ,EAAGnuD,EAE3B,IAAI+yD,GAAKvqJ,KAAKqoJ,YACVoC,EAAOzqJ,KAAK0qJ,cAEZvsF,GAAqBosF,EAAKjlJ,EAAIm1B,EAAEgwH,CAEpC,OAAOtsF,MAGRixE,eAAe,GAAGC,iBAAiB,GAAG+a,aAAa,GAAGngB,oBAAsB,EAAEC,qBAAuB,IAAIyiB,IAAI,SAASx2D,EAAQx0D,GAiBjI,QAASomH,GAAuBlY,EAAOC,EAAOniH,GAC1CA,EAAUA,MACVimH,EAAS7vI,KAAK/D,KAAM6vI,EAAOC,GAAQzjG,OAAOG,UAAWH,OAAOG,WAK5DxsC,KAAKsG,MAAQqnB,EAAQrnB,OAAS,CAE9B,IAAIi4D,GAAIv+D,KAAKu+D,CACbA,GAAE,GAAM,EACRA,EAAE,GAAK,GA3BX,GAAwPq1E,IAA5Oz9C,EAAQ,wBAAuHA,EAAQ,uBAAgHA,EAAQ,eACvQ04C,EAAO14C,EAAQ,eAEnBx0D,GAAOD,QAAUqmH,EA0BjBA,EAAuBlkJ,UAAY,GAAI+vI,GACvCmU,EAAuBlkJ,UAAUsB,YAAc4iJ,CAE/C,IAAI6E,GAAe/d,EAAKxiI,SACpBwgJ,EAAehe,EAAKxiI,SACpBk7I,EAAQ1Y,EAAK8G,WAAW,EAAE,GAC1BD,EAAQ7G,EAAK8G,WAAW,EAAE,EAC9BoS,GAAuBlkJ,UAAU+hJ,UAAY,WAGzC,MAFA/W,GAAKxoI,OAAOumJ,EAAarF,EAAMvnJ,KAAK6vI,MAAMvpI,MAAMtG,KAAKsG,OACrDuoI,EAAKxoI,OAAOwmJ,EAAanX,EAAM11I,KAAK8vI,MAAMxpI,OACnCuoI,EAAK5kG,IAAI2iH,EAAaC,MAG9Bzd,eAAe,GAAGgb,aAAa,GAAGngB,oBAAsB,EAAEC,qBAAuB,IAAI4iB,IAAI,SAAS32D,EAAQx0D,GAe7G,QAASkoH,GAA2Bha,EAAOC,GACvC8D,EAAS7vI,KAAK/D,KAAM6vI,EAAOC,GAAQzjG,OAAOG,UAAWH,OAAOG,WAC5DxsC,KAAK43I,iBAAmB,EACxB53I,KAAK29B,MAAQ,EAjBjB,CAAA,GAA4Pi2G,IAAhPz9C,EAAQ,wBAAuHA,EAAQ,uBAAoHA,EAAQ,cACpQA,GAAQ,gBAEnBx0D,EAAOD,QAAUmoH,EAgBjBA,EAA2BhmJ,UAAY,GAAI+vI,GAC3CiW,EAA2BhmJ,UAAUsB,YAAc0kJ,EACnDA,EAA2BhmJ,UAAUymJ,SAAW,SAASjlJ,EAAEC,EAAEm1B,GACzD,GAAI8jC,GAAIv+D,KAAKu+D,CACbA,GAAE,GAAK,GACPA,EAAE,GAAKv+D,KAAK29B,KAEZ,IAAI8sH,GAAOzqJ,KAAK0qJ,cACZH,EAAKvqJ,KAAKqoJ,YACVlqF,GAAMosF,EAAKjlJ,EAAIm1B,EAAEgwH,CAErB,OAAOtsF,MAGRixE,eAAe,GAAGgb,aAAa,GAAGngB,oBAAsB,EAAEC,qBAAuB,IAAI6iB,IAAI,SAAS52D,EAAQx0D,GAC7G,GAKIqrH,IALQ72D,EAAQ,wBAAuHA,EAAQ,uBAKhI,aAEnBx0D,GAAOD,QAAUsrH,EAEjBA,EAAanpJ,WACTsB,YAAa6nJ,EASbn9I,GAAI,SAAW5M,EAAMk2C,EAAUroC,GAC3BqoC,EAASroC,QAAUA,GAAW9Q,KACLyN,SAApBzN,KAAKoc,aACNpc,KAAKoc,cAET,IAAIF,GAAYlc,KAAKoc,UAOrB,OAN2B3O,UAAtByO,EAAWjZ,KACZiZ,EAAWjZ,OAEgC,KAA1CiZ,EAAWjZ,GAAOI,QAAS81C,IAC5Bj9B,EAAWjZ,GAAOqB,KAAM60C,GAErBn5C,MAUXm6C,IAAK,SAAWl3C,EAAMk2C,GAClB,GAAyB1rC,SAApBzN,KAAKoc,WACN,OAAO,CAEX,IAAIF,GAAYlc,KAAKoc,UACrB,IAAG+8B,GACC,GAA2B1rC,SAAtByO,EAAWjZ,IAAkE,KAA1CiZ,EAAWjZ,GAAOI,QAAS81C,GAC/D,OAAO,MAGX,IAA2B1rC,SAAtByO,EAAWjZ,GACZ,OAAO,CAIf,QAAO,GAUX+Z,IAAK,SAAW/Z,EAAMk2C,GAClB,GAAyB1rC,SAApBzN,KAAKoc,WACN,MAAOpc,KAEX,IAAIkc,GAAYlc,KAAKoc,WACjBzP,EAAQuP,EAAWjZ,GAAOI,QAAS81C,EAIvC,OAHe,KAAVxsC,GACDuP,EAAWjZ,GAAO4J,OAAQF,EAAO,GAE9B3M,MAUXqc,KAAM,SAAWiU,GACb,GAAyB7iB,SAApBzN,KAAKoc,WACN,MAAOpc,KAEX,IAAIkc,GAAYlc,KAAKoc,WACjB6wI,EAAgB/wI,EAAWoU,EAAMrtB,KACrC,IAAuBwK,SAAlBw/I,EAA8B,CAC/B38H,EAAMvmB,OAAS/J,IACf,KAAM,GAAImE,GAAI,EAAGsgC,EAAIwoH,EAAc5oJ,OAAYogC,EAAJtgC,EAAOA,IAAO,CACrD,GAAIg1C,GAAW8zG,EAAe9oJ,EAC9Bg1C,GAASp1C,KAAMo1C,EAASroC,QAASwf,IAGzC,MAAOtwB,UAIZiqI,oBAAsB,EAAEC,qBAAuB,IAAIgjB,IAAI,SAAS/2D,EAAQx0D,GAsB3E,QAASwrH,GAAgBC,EAAWC,EAAW1/H,GAG3C,GAFAA,EAAUA,QAELy/H,YAAqBE,IAAeD,YAAqBC,IAC1D,KAAM,IAAIxgJ,OAAM,kDAQpB9M,MAAKkG,GAAKinJ,EAAgBI,YAO1BvtJ,KAAKotJ,UAAYA,EAOjBptJ,KAAKqtJ,UAAYA,EAOjBrtJ,KAAKwtJ,SAA+C,mBAAzB7/H,GAAgB,SAAyB0e,OAAO1e,EAAQ6/H,UAAe,GAOlGxtJ,KAAK0zI,YAA+C,mBAAzB/lH,GAAmB,YAAsB0e,OAAO1e,EAAQ+lH,aAAe,EAOlG1zI,KAAK2zI,UAA+D,mBAAjChmH,GAAiB,UAAgC0e,OAAO1e,EAAQgmH,WAAeC,EAASC,kBAO3H7zI,KAAK8zI,WAA+D,mBAAjCnmH,GAAkB,WAA+B0e,OAAO1e,EAAQmmH,YAAeF,EAASG,mBAO3H/zI,KAAKg0I,kBAA+D,mBAAjCrmH,GAAyB,kBAAwB0e,OAAO1e,EAAQqmH,mBAAuBJ,EAASC,kBAOnI7zI,KAAKi0I,mBAA+D,mBAAjCtmH,GAA0B,mBAAuB0e,OAAO1e,EAAQsmH,oBAAuBL,EAASG,mBAMnI/zI,KAAKszI,gBAAyD,mBAAhC3lH,GAAuB,gBAAyB0e,OAAO1e,EAAQ2lH,iBAAsB,EAOnHtzI,KAAKq0I,gBAAkB,KAtG3B,GAA+OiZ,IAAnOn3D,EAAQ,wBAAuHA,EAAQ,uBAAuGA,EAAQ,eAC9Py9C,EAAWz9C,EAAQ,wBAEvBx0D,GAAOD,QAAUyrH,EAsGjBA,EAAgBI,UAAY,IAEzB/J,wBAAwB,GAAGiK,aAAa,GAAGxjB,oBAAsB,EAAEC,qBAAuB,IAAIwjB,IAAI,SAASv3D,EAAQx0D,GAUtH,QAAS2rH,GAASpnJ,GAMdlG,KAAKkG,GAAKA,GAAMonJ,EAASC,YAfjBp3D,EAAQ,wBAAuHA,EAAQ,sBAAiFx0D,GAAOD,QAAU4rH,EAkBrPA,EAASC,UAAY,IAElBtjB,oBAAsB,EAAEC,qBAAuB,IAAIyjB,IAAI,SAASx3D,EAAQx0D,GAC3E,GA8BQhkB,IA9BIw4E,EAAQ,wBAAuHA,EAAQ,0BAiF/Ix4E,GAAMiwI,QAAU,SAAS1pJ,GAErB,GAAGA,EAAEG,OAAQ,EAAG,MAAO,EAGvB,KAAI,GAFAogC,GAAIvgC,EAAEG,OAAS,EACf80F,EAAM,EACFh1F,EAAE,EAAKsgC,EAAFtgC,EAAKA,GAAG,EACjBg1F,IAAQj1F,EAAEC,EAAE,GAAGD,EAAEC,KAAOD,EAAEC,EAAE,GAAGD,EAAEC,EAAE,GAEvC,OADAg1F,KAAQj1F,EAAE,GAAGA,EAAEugC,KAAOvgC,EAAEugC,EAAE,GAAGvgC,EAAE,IAChB,IAANi1F,GAoBbx7E,EAAMC,YAAc,SAAS1Z,GAEzB,GAAI4Z,GAAI5Z,EAAEG,QAAQ,CAClB,IAAK,EAAFyZ,EAAK,QAGR,KAAI,GAFAC,MACAC,KACI7Z,EAAE,EAAK2Z,EAAF3Z,EAAKA,IAAK6Z,EAAI1Z,KAAKH,EAIhC,KAFA,GAAIA,GAAI,EACJ8Z,EAAKH,EACHG,EAAK,GACX,CACI,GAAIC,GAAKF,GAAK7Z,EAAE,GAAG8Z,GACfE,EAAKH,GAAK7Z,EAAE,GAAG8Z,GACfG,EAAKJ,GAAK7Z,EAAE,GAAG8Z,GAEfI,EAAKna,EAAE,EAAEga,GAAMI,EAAKpa,EAAE,EAAEga,EAAG,GAC3BK,EAAKra,EAAE,EAAEia,GAAMK,EAAKta,EAAE,EAAEia,EAAG,GAC3BM,EAAKva,EAAE,EAAEka,GAAMM,EAAKxa,EAAE,EAAEka,EAAG,GAE3BO,GAAW,CACf,IAAGhB,EAAMiB,QAAQP,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACrC,CACIC,GAAW,CACX,KAAI,GAAI9Z,GAAE,EAAKoZ,EAAFpZ,EAAMA,IACnB,CACI,GAAIga,GAAKb,EAAInZ,EACb,IAAGga,GAAIX,GAAMW,GAAIV,GAAMU,GAAIT,GACxBT,EAAMmB,iBAAiB5a,EAAE,EAAE2a,GAAK3a,EAAE,EAAE2a,EAAG,GAAIR,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAK,CAACC,GAAW,CAAO,SAGlG,GAAGA,EAECZ,EAAIzZ,KAAK4Z,EAAIC,EAAIC,GACjBJ,EAAInR,QAAQ1I,EAAE,GAAG8Z,EAAI,GACrBA,IACA9Z,EAAG,MAEF,IAAGA,IAAM,EAAE8Z,EAAI,MAGxB,MADAF,GAAIzZ,KAAK0Z,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACtBD,GAiOXJ,EAAMmB,iBAAmB,SAASC,EAAIC,EAAIX,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAE1D,GAAIO,GAAMR,EAAGJ,EACTa,EAAMR,EAAGJ,EACTa,EAAMZ,EAAGF,EACTe,EAAMZ,EAAGF,EACTe,EAAMN,EAAGV,EACTiB,EAAMN,EAAGV,EAETiB,EAAQN,EAAIA,EAAIC,EAAIA,EACpBM,EAAQP,EAAIE,EAAID,EAAIE,EACpBK,EAAQR,EAAII,EAAIH,EAAII,EACpBI,EAAQP,EAAIA,EAAIC,EAAIA,EACpBO,EAAQR,EAAIE,EAAID,EAAIE,EAEpBM,EAAW,GAAKL,EAAQG,EAAQF,EAAQA,GACxCK,GAAKH,EAAQD,EAAQD,EAAQG,GAASC,EACtCE,GAAKP,EAAQI,EAAQH,EAAQC,GAASG,CAG1C,OAAQC,IAAK,GAAOC,GAAK,GAAe,EAARD,EAAIC,GAuDxCnC,EAAMiB,QAAU,SAASP,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAEzC,OAAQJ,EAAGE,IAAKC,EAAGF,IAAOA,EAAGF,IAAKK,EAAGF,IAAO,GAwBpDmjB,EAAOD,QAAU/jB,IAEdssH,oBAAsB,EAAEC,qBAAuB,IAAI2jB,IAAI,SAAS13D,EAAQx0D,GAC3E,GA2BIktG,IA3BQ14C,EAAQ,wBAAuHA,EAAQ,uBA2BxIx0D,EAAOD,YAEd0C,EAAQ+xD,EAAQ,iBAUpB04C,GAAKwG,YAAc,SAAShwI,EAAEC,GAC1B,MAAOD,GAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,IAYlCupI,EAAKif,QAAU,SAAShmH,EAAKimH,EAAKC,GAG9B,MAFAnf,GAAKxoI,OAAOyhC,EAAIimH,GAAK7rJ,KAAKC,GAAG,GAC7B0sI,EAAKzoI,MAAM0hC,EAAIA,EAAIkmH,GACZlmH,GAYX+mG,EAAKof,QAAU,SAASnmH,EAAKkmH,EAAOD,GAGhC,MAFAlf,GAAKxoI,OAAOyhC,EAAIimH,EAAI7rJ,KAAKC,GAAG,GAC5B0sI,EAAKzoI,MAAM0hC,EAAIA,EAAIkmH,GACZlmH,GAWX+mG,EAAKxoI,OAAS,SAASyhC,EAAIziC,EAAEiB,GACzB,GAAa,IAAVA,EAAY,CACX,GAAIf,GAAIrD,KAAKqE,IAAID,GACbkkC,EAAItoC,KAAKsE,IAAIF,GACb/B,EAAIc,EAAE,GACNb,EAAIa,EAAE,EACVyiC,GAAI,GAAKviC,EAAEhB,EAAGimC,EAAEhmC,EAChBsjC,EAAI,GAAK0C,EAAEjmC,EAAGgB,EAAEf,MAEhBsjC,GAAI,GAAKziC,EAAE,GACXyiC,EAAI,GAAKziC,EAAE,IAYnBwpI,EAAKmJ,WAAa,SAASlwG,EAAKziC,GAC5B,GAAId,GAAIc,EAAE,GACNb,EAAIa,EAAE,EACVyiC,GAAI,GAAKtjC,EACTsjC,EAAI,IAAMvjC,GAWdsqI,EAAKqf,aAAe,SAASpmH,EAAK4sG,EAAYyZ,EAAeC,GACzDvf,EAAKroG,KAAKsB,EAAK4sG,GACf7F,EAAKkB,IAAIjoG,EAAKA,EAAKqmH,GACnBtf,EAAKxoI,OAAOyhC,EAAKA,GAAMsmH,IAW3Bvf,EAAKwf,cAAgB,SAASvmH,EAAKszB,EAAY+yF,EAAeC,GAC1Dvf,EAAKroG,KAAKsB,EAAKszB,GACfyzE,EAAKxoI,OAAOyhC,EAAKA,EAAKsmH,GACtBvf,EAAK7lG,IAAIlB,EAAKA,EAAKqmH,IAavBtf,EAAK/jG,SAAW,SAAShD,EAAKziC,EAAGC,EAAGC,GAIhC,MAHAspI,GAAK7lG,IAAIlB,EAAKziC,EAAGC,GACjBupI,EAAK7lG,IAAIlB,EAAKA,EAAKviC,GACnBspI,EAAKzoI,MAAM0hC,EAAKA,EAAK,EAAE,GAChBA,GASX+mG,EAAKxiI,OAAS,WACV,GAAIy7B,GAAM,GAAI1D,GAAMwmH,WAAW,EAG/B,OAFA9iH,GAAI,GAAK,EACTA,EAAI,GAAK,EACFA,GAUX+mG,EAAKnqI,MAAQ,SAASW,GAClB,GAAIyiC,GAAM,GAAI1D,GAAMwmH,WAAW,EAG/B,OAFA9iH,GAAI,GAAKziC,EAAE,GACXyiC,EAAI,GAAKziC,EAAE,GACJyiC,GAWX+mG,EAAK8G,WAAa,SAASpxI,EAAGC,GAC1B,GAAIsjC,GAAM,GAAI1D,GAAMwmH,WAAW,EAG/B,OAFA9iH,GAAI,GAAKvjC,EACTujC,EAAI,GAAKtjC,EACFsjC,GAWX+mG,EAAKroG,KAAO,SAASsB,EAAKziC,GAGtB,MAFAyiC,GAAI,GAAKziC,EAAE,GACXyiC,EAAI,GAAKziC,EAAE,GACJyiC,GAYX+mG,EAAKvlI,IAAM,SAASw+B,EAAKvjC,EAAGC,GAGxB,MAFAsjC,GAAI,GAAKvjC,EACTujC,EAAI,GAAKtjC,EACFsjC,GAYX+mG,EAAK7lG,IAAM,SAASlB,EAAKziC,EAAGC,GAGxB,MAFAwiC,GAAI,GAAKziC,EAAE,GAAKC,EAAE,GAClBwiC,EAAI,GAAKziC,EAAE,GAAKC,EAAE,GACXwiC,GAYX+mG,EAAK5lG,SAAW,SAASnB,EAAKziC,EAAGC,GAG7B,MAFAwiC,GAAI,GAAKziC,EAAE,GAAKC,EAAE,GAClBwiC,EAAI,GAAKziC,EAAE,GAAKC,EAAE,GACXwiC,GAQX+mG,EAAKkB,IAAMlB,EAAK5lG,SAWhB4lG,EAAK3lG,SAAW,SAASpB,EAAKziC,EAAGC,GAG7B,MAFAwiC,GAAI,GAAKziC,EAAE,GAAKC,EAAE,GAClBwiC,EAAI,GAAKziC,EAAE,GAAKC,EAAE,GACXwiC,GAQX+mG,EAAKyf,IAAMzf,EAAK3lG,SAWhB2lG,EAAK1lG,OAAS,SAASrB,EAAKziC,EAAGC,GAG3B,MAFAwiC,GAAI,GAAKziC,EAAE,GAAKC,EAAE,GAClBwiC,EAAI,GAAKziC,EAAE,GAAKC,EAAE,GACXwiC,GAQX+mG,EAAK0f,IAAM1f,EAAK1lG,OAWhB0lG,EAAKzoI,MAAQ,SAAS0hC,EAAKziC,EAAGC,GAG1B,MAFAwiC,GAAI,GAAKziC,EAAE,GAAKC,EAChBwiC,EAAI,GAAKziC,EAAE,GAAKC,EACTwiC,GAWX+mG,EAAKpnG,SAAW,SAASpiC,EAAGC,GACxB,GAAIf,GAAIe,EAAE,GAAKD,EAAE,GACbb,EAAIc,EAAE,GAAKD,EAAE,EACjB,OAAOnD,MAAKgrB,KAAK3oB,EAAEA,EAAIC,EAAEA,IAQ7BqqI,EAAKhiH,KAAOgiH,EAAKpnG,SAUjBonG,EAAK2f,gBAAkB,SAASnpJ,EAAGC,GAC/B,GAAIf,GAAIe,EAAE,GAAKD,EAAE,GACbb,EAAIc,EAAE,GAAKD,EAAE,EACjB,OAAOd,GAAEA,EAAIC,EAAEA,GAQnBqqI,EAAK4f,QAAU5f,EAAK2f,gBASpB3f,EAAKxqI,OAAS,SAAUgB,GACpB,GAAId,GAAIc,EAAE,GACNb,EAAIa,EAAE,EACV,OAAOnD,MAAKgrB,KAAK3oB,EAAEA,EAAIC,EAAEA,IAQ7BqqI,EAAKvzG,IAAMuzG,EAAKxqI,OAShBwqI,EAAKoB,cAAgB,SAAU5qI,GAC3B,GAAId,GAAIc,EAAE,GACNb,EAAIa,EAAE,EACV,OAAOd,GAAEA,EAAIC,EAAEA,GAQnBqqI,EAAK6f,OAAS7f,EAAKoB,cAUnBpB,EAAK8f,OAAS,SAAS7mH,EAAKziC,GAGxB,MAFAyiC,GAAI,IAAMziC,EAAE,GACZyiC,EAAI,IAAMziC,EAAE,GACLyiC,GAWX+mG,EAAK/kG,UAAY,SAAShC,EAAKziC,GAC3B,GAAId,GAAIc,EAAE,GACNb,EAAIa,EAAE,GACNi2B,EAAM/2B,EAAEA,EAAIC,EAAEA,CAOlB,OANI82B,GAAM,IAENA,EAAM,EAAIp5B,KAAKgrB,KAAKoO,GACpBwM,EAAI,GAAKziC,EAAE,GAAKi2B,EAChBwM,EAAI,GAAKziC,EAAE,GAAKi2B,GAEbwM,GAWX+mG,EAAK5kG,IAAM,SAAU5kC,EAAGC,GACpB,MAAOD,GAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,IAUlCupI,EAAK9oG,IAAM,SAAU1gC,GACjB,MAAO,QAAUA,EAAE,GAAK,KAAOA,EAAE,GAAK,OAGvCgqI,iBAAiB,GAAGpF,oBAAsB,EAAEC,qBAAuB,IAAI0kB,IAAI,SAASz4D,EAAQx0D,GA0C/F,QAASy9E,GAAKzxF,GACVA,EAAUA,MAEVq/H,EAAajpJ,KAAK/D,MAOlBA,KAAKkG,KAAOk5G,EAAKyvC,WAOjB7uJ,KAAKoyC,MAAQ,KASbpyC,KAAK8uJ,UAQL9uJ,KAAK+uJ,gBAOL/uJ,KAAKgvJ,eAOLhvJ,KAAKonH,KAAOz5F,EAAQy5F,MAAQ,EAO5BpnH,KAAKivJ,QAAU,EAOfjvJ,KAAKkvJ,QAAU,EAOflvJ,KAAKmvJ,WAAa,EAElBnvJ,KAAK0rJ,aAAe,EACpB1rJ,KAAK6rJ,gBAAkB,EAOvB7rJ,KAAKovJ,gBAAkBzhI,EAAQyhI,cAO/BpvJ,KAAK2H,SAAWknI,EAAK8G,WAAW,EAAE,GAC/BhoH,EAAQhmB,UACPknI,EAAKroG,KAAKxmC,KAAK2H,SAAUgmB,EAAQhmB,UAQrC3H,KAAKqvJ,qBAAuBxgB,EAAK8G,WAAW,EAAE,GAO9C31I,KAAKsvJ,kBAAoB,EAOzBtvJ,KAAKuvJ,iBAAmB1gB,EAAK8G,WAAW,EAAE,GAO1C31I,KAAKwvJ,cAAgB,EAOrBxvJ,KAAKwkH,SAAWqqB,EAAK8G,WAAW,EAAE,GAC/BhoH,EAAQ62F,UACPqqB,EAAKroG,KAAKxmC,KAAKwkH,SAAU72F,EAAQ62F,UAQrCxkH,KAAKgrJ,QAAUnc,EAAK8G,WAAW,EAAE,GAOjC31I,KAAKirJ,QAAU,EAiBfjrJ,KAAKsG,MAAQqnB,EAAQrnB,OAAS,EAO9BtG,KAAKokH,gBAAkBz2F,EAAQy2F,iBAAmB,EAqBlDpkH,KAAKqiD,MAAQwsF,EAAKxiI,SACfshB,EAAQ00B,OACPwsF,EAAKroG,KAAKxmC,KAAKqiD,MAAO10B,EAAQ00B,OAQlCriD,KAAKsrJ,aAAe39H,EAAQ29H,cAAgB,EAQ5CtrJ,KAAKyvJ,QAAsC,gBAArB9hI,GAAe,QAAiBA,EAAQ8hI,QAAU,GAQxEzvJ,KAAK0vJ,eAAoD,gBAA5B/hI,GAAsB,eAAiBA,EAAQ+hI,eAAiB,GA+B7F1vJ,KAAKiD,KAAOm8G,EAAKmxB,OAGbvwI,KAAKiD,KADmB,mBAAlB0qB,GAAY,KACNA,EAAQ1qB,KACb0qB,EAAQy5F,KAGHhI,EAAKuwC,QAFLvwC,EAAKmxB,OAUrBvwI,KAAKkwI,eAAiB,EAOtBlwI,KAAKmsC,KAAO,GAAIwiG,GAchB3uI,KAAKokJ,iBAAkB,EAQvBpkJ,KAAK4vJ,YAAa,EAElB5vJ,KAAK6vJ,cAAe,EAWpB7vJ,KAAKywI,WAAarxB,EAAK0wC,MAQvB9vJ,KAAK+vJ,gBAAkB,GAQvB/vJ,KAAKgwJ,eAAiB,EAOtBhwJ,KAAKiwJ,aAAe,EAOpBjwJ,KAAKkwJ,eAAiB,EAEtBlwJ,KAAKmwJ,YAAc,KAEnBnwJ,KAAKowJ,yBAA0B,EAE/BpwJ,KAAKqwJ,uBAzXT,GAAkOxhB,IAAtN14C,EAAQ,wBAAuHA,EAAQ,uBAAsFA,EAAQ,iBAC7O01C,EAAS11C,EAAQ,eACjBq/C,EAASr/C,EAAQ,oBACjBw4C,EAAOx4C,EAAQ,qBACf62D,EAAe72D,EAAQ,yBAE3Bx0D,GAAOD,QAAU09E,EAqXjBA,EAAKv7G,UAAY,GAAImpJ,GAErB5tC,EAAKyvC,WAAa,EAElBzvC,EAAKv7G,UAAUysJ,0BAA4B,WACpCtwJ,KAAKywI,aAAerxB,EAAKsxB,UAAY1wI,KAAKiD,OAASm8G,EAAKoxB,WACvDxwI,KAAK0rJ,aAAe,EACpB1rJ,KAAK6rJ,gBAAkB,IAEvB7rJ,KAAK0rJ,aAAe1rJ,KAAKivJ,QACzBjvJ,KAAK6rJ,gBAAkB7rJ,KAAKmvJ,aAQpC/vC,EAAKv7G,UAAU0sJ,WAAa,SAASC,GACjC,GAAIC,GAAYzwJ,KAAK0wJ,SACrB1wJ,MAAKonH,KAAOqpC,EAAYD,EACxBxwJ,KAAKqwJ,wBAQTjxC,EAAKv7G,UAAU6sJ,QAAU,WAErB,IAAI,GADAD,GAAY,EACRtsJ,EAAE,EAAGA,EAAEnE,KAAK8uJ,OAAOzqJ,OAAQF,IAC/BssJ,GAAazwJ,KAAK8uJ,OAAO3qJ,GAAGgqC,IAEhC,OAAOsiH,IAOXrxC,EAAKv7G,UAAUusI,QAAU,WAIrB,MAHGpwI,MAAKokJ,iBACJpkJ,KAAKqkJ,aAEFrkJ,KAAKmsC,KAGhB,IAAIwkH,GAAY,GAAIhiB,GAChB9qC,EAAMgrC,EAAKxiI,QAMf+yG,GAAKv7G,UAAUwgJ,WAAa,WAQxB,IAAI,GAPAyK,GAAS9uJ,KAAK8uJ,OACdC,EAAe/uJ,KAAK+uJ,aACpBC,EAAchvJ,KAAKgvJ,YACnBlwF,EAAIgwF,EAAOzqJ,OACXqiB,EAASm9E,EACT+sD,EAAY5wJ,KAAKsG,MAEbnC,EAAE,EAAGA,IAAI26D,EAAG36D,IAAI,CACpB,GAAIskB,GAAQqmI,EAAO3qJ,GACfmC,EAAQ0oJ,EAAY7qJ,GAAKysJ,CAG7B/hB,GAAKxoI,OAAOqgB,EAAQqoI,EAAa5qJ,GAAIysJ,GACrC/hB,EAAK7lG,IAAItiB,EAAQA,EAAQ1mB,KAAK2H,UAG9B8gB,EAAMooI,YAAYF,EAAWjqI,EAAQpgB,GAE9B,IAAJnC,EACCnE,KAAKmsC,KAAK3F,KAAKmqH,GAEf3wJ,KAAKmsC,KAAK5F,OAAOoqH,GAIzB3wJ,KAAKokJ,iBAAkB,GAQ3BhlC,EAAKv7G,UAAUitJ,qBAAuB,WAMlC,IAAI,GALAhC,GAAS9uJ,KAAK8uJ,OACdC,EAAe/uJ,KAAK+uJ,aACpBjwF,EAAIgwF,EAAOzqJ,OACXoD,EAAS,EAELtD,EAAE,EAAGA,IAAI26D,EAAG36D,IAAI,CACpB,GAAIskB,GAAQqmI,EAAO3qJ,GACfuiB,EAASmoH,EAAKxqI,OAAO0qJ,EAAa5qJ,IAClCwlB,EAAIlB,EAAMynH,cACXxpH,GAASiD,EAAIliB,IACZA,EAASif,EAASiD,GAI1B3pB,KAAKkwI,eAAiBzoI,GA0B1B23G,EAAKv7G,UAAUktJ,SAAW,SAAStoI,EAAM/B,EAAOpgB,GAC5CA,EAAQA,GAAS,EAIbogB,EADDA,EACUmoH,EAAK8G,WAAWjvH,EAAO,GAAGA,EAAO,IAEjCmoH,EAAK8G,WAAW,EAAE,GAG/B31I,KAAK8uJ,OAAaxqJ,KAAKmkB,GACvBzoB,KAAK+uJ,aAAazqJ,KAAKoiB,GACvB1mB,KAAKgvJ,YAAa1qJ,KAAKgC,GACvBtG,KAAKqwJ,uBACLrwJ,KAAK8wJ,uBAEL9wJ,KAAKokJ,iBAAkB,GAS3BhlC,EAAKv7G,UAAUmtJ,YAAc,SAASvoI,GAClC,GAAI1R,GAAM/W,KAAK8uJ,OAAOzrJ,QAAQolB,EAE9B,OAAW,KAAR1R,GACC/W,KAAK8uJ,OAAOjiJ,OAAOkK,EAAI,GACvB/W,KAAK+uJ,aAAaliJ,OAAOkK,EAAI,GAC7B/W,KAAKgvJ,YAAYniJ,OAAOkK,EAAI,GAC5B/W,KAAKokJ,iBAAkB,GAChB,IAEA,GAcfhlC,EAAKv7G,UAAUwsJ,qBAAuB,WAClC,GAAGrwJ,KAAKiD,OAASm8G,EAAKmxB,QAAUvwI,KAAKiD,OAASm8G,EAAKoxB,UAE/CxwI,KAAKonH,KAAO/6E,OAAOG,UACnBxsC,KAAKivJ,QAAU,EACfjvJ,KAAKkvJ,QAAU7iH,OAAOG,UACtBxsC,KAAKmvJ,WAAa,MAEf,CAEH,GAAIL,GAAS9uJ,KAAK8uJ,OACdhwF,EAAIgwF,EAAOzqJ,OACX2lC,EAAIhqC,KAAKonH,KAAOtoD,EAChBL,EAAI,CAER,IAAIz+D,KAAKovJ,cAWLpvJ,KAAKkvJ,QAAU7iH,OAAOG,UACtBxsC,KAAKmvJ,WAAa,MAZC,CACnB,IAAI,GAAIhrJ,GAAE,EAAK26D,EAAF36D,EAAKA,IAAI,CAClB,GAAIskB,GAAQqmI,EAAO3qJ,GACf+6E,EAAK2vD,EAAKoB,cAAcjwI,KAAK+uJ,aAAa5qJ,IAC1C8sJ,EAAMxoI,EAAMyoI,uBAAuBlnH,EACvCy0B,IAAKwyF,EAAMjnH,EAAEk1C,EAEjBl/E,KAAKkvJ,QAAUzwF,EACfz+D,KAAKmvJ,WAAa1wF,EAAE,EAAI,EAAEA,EAAI,EAQlCz+D,KAAKivJ,QAAU,EAAEjvJ,KAAKonH,MAI9B,IAAI+pC,GAAoBtiB,EAAKxiI,QAQ7B+yG,GAAKv7G,UAAUutJ,WAAa,SAAS/uG,EAAMqyF,GAEvC,GAAI/qH,GAAIwnI,CACRtiB,GAAKkB,IAAIpmH,EAAE+qH,EAAW10I,KAAK2H,UAG3BknI,EAAK7lG,IAAIhpC,KAAKqiD,MAAMriD,KAAKqiD,MAAMA,EAG/B,IAAIgvG,GAAWxiB,EAAKwG,YAAY1rH,EAAE04B,EAGlCriD,MAAKsrJ,cAAgB+F,GASzBjyC,EAAKv7G,UAAUqqJ,aAAe,SAASpmH,EAAK4sG,GACxC7F,EAAKqf,aAAapmH,EAAK4sG,EAAY10I,KAAK2H,SAAU3H,KAAKsG,QAS3D84G,EAAKv7G,UAAUytJ,aAAe,SAASxpH,EAAKszB,GACxCyzE,EAAKwf,cAAcvmH,EAAKszB,EAAYp7D,KAAK2H,SAAU3H,KAAKsG,QAa5D84G,EAAKv7G,UAAU0tJ,YAAc,SAAS1/G,EAAKlkB,GACvCA,EAAUA,KAGV,KAAI,GAAIxpB,GAAEnE,KAAK8uJ,OAAOzqJ,OAAQF,GAAG,IAAKA,EAClCnE,KAAKgxJ,YAAYhxJ,KAAK8uJ,OAAO3qJ,GAGjC,IAAID,GAAI,GAAI2nI,GAAOloI,OAWnB,IAVAO,EAAEivB,SAAW0e,EAGb3tC,EAAE+mI,UAE2C,gBAAnCt9G,GAA6B,uBACnCzpB,EAAE+oI,sBAAsBt/G,EAAQs/G,uBAIG,mBAA7Bt/G,GAAuB,kBACzBzpB,EAAEgoI,WACF,OAAO,CAKflsI,MAAKmwJ,YAAcjsJ,EAAEivB,SAASrvB,MAAM,EACpC,KAAI,GAAIK,GAAE,EAAGA,EAAEnE,KAAKmwJ,YAAY9rJ,OAAQF,IAAI,CACxC,GAAI2b,IAAK,EAAE,EACX+uH,GAAKroG,KAAK1mB,EAAE9f,KAAKmwJ,YAAYhsJ,IAC7BnE,KAAKmwJ,YAAYhsJ,GAAK2b,EAI1B,GAAI0xI,EAEAA,GADD7jI,EAAQ8jI,cACIvtJ,EAAE2nI,SAEF3nI,EAAEioI,aAMjB,KAAI,GAHAulB,GAAK7iB,EAAKxiI,SAGNlI,EAAE,EAAGA,IAAIqtJ,EAASntJ,OAAQF,IAAI,CAKlC,IAAI,GAHAoB,GAAI,GAAIiwI,GAAOgc,EAASrtJ,GAAGgvB,UAGvBtuB,EAAE,EAAGA,IAAIU,EAAE4tB,SAAS9uB,OAAQQ,IAAI,CACpC,GAAIib,GAAIva,EAAE4tB,SAAStuB,EACnBgqI,GAAKkB,IAAIjwH,EAAEA,EAAEva,EAAEosJ,cAGnB9iB,EAAKzoI,MAAMsrJ,EAAGnsJ,EAAEosJ,aAAa,GAC7BpsJ,EAAEqsJ,kBACFrsJ,EAAEssJ,qBACFtsJ,EAAEurJ,uBAGF9wJ,KAAK+wJ,SAASxrJ,EAAEmsJ,GAOpB,MAJA1xJ,MAAK8xJ,qBAEL9xJ,KAAKokJ,iBAAkB,GAEhB,EAGX,IACI2N,IAD0BljB,EAAK8G,WAAW,EAAE,GAClB9G,EAAK8G,WAAW,EAAE,IAC5Cqc,EAA0BnjB,EAAK8G,WAAW,EAAE,GAC5Csc,EAA0BpjB,EAAK8G,WAAW,EAAE,EAMhDv2B,GAAKv7G,UAAUiuJ,mBAAqB,WAChC,GAAII,GAAoBH,EACpB54D,EAAoB64D,EACpBN,EAAoBO,EACpBxB,EAAoB,CACxB5hB,GAAKvlI,IAAI6vF,EAAI,EAAE,EAEf,KAAI,GAAIh1F,GAAE,EAAGA,IAAInE,KAAK8uJ,OAAOzqJ,OAAQF,IAAI,CACrC,GAAIqmC,GAAIxqC,KAAK8uJ,OAAO3qJ,GAChBuiB,EAAS1mB,KAAK+uJ,aAAa5qJ,EAC/B0qI,GAAKzoI,MAAM8rJ,EAAkBxrI,EAAO8jB,EAAE2D,MACtC0gG,EAAK7lG,IAAImwD,EAAIA,EAAI+4D,GACjBzB,GAAajmH,EAAE2D,KAGnB0gG,EAAKzoI,MAAMsrJ,EAAGv4D,EAAI,EAAEs3D,EAGpB,KAAI,GAAItsJ,GAAE,EAAGA,IAAInE,KAAK8uJ,OAAOzqJ,OAAQF,IAAI,CACrC,GAAIqmC,GAAIxqC,KAAK8uJ,OAAO3qJ,GAChBuiB,EAAS1mB,KAAK+uJ,aAAa5qJ,EAG3BuiB,KACAA,EAAS1mB,KAAK+uJ,aAAa5qJ,GAAK0qI,EAAKxiI,UAGzCwiI,EAAKkB,IAAIrpH,EAAOA,EAAOgrI,GAI3B7iB,EAAK7lG,IAAIhpC,KAAK2H,SAAS3H,KAAK2H,SAAS+pJ,EAGrC,KAAI,GAAIvtJ,GAAE,EAAGnE,KAAKmwJ,aAAehsJ,EAAEnE,KAAKmwJ,YAAY9rJ,OAAQF,IACxD0qI,EAAKkB,IAAI/vI,KAAKmwJ,YAAYhsJ,GAAInE,KAAKmwJ,YAAYhsJ,GAAIutJ,EAGvD1xJ,MAAKqwJ,uBACLrwJ,KAAK8wJ,wBAOT1xC,EAAKv7G,UAAUsuJ,aAAe,WAC1BtjB,EAAKvlI,IAAItJ,KAAKqiD,MAAM,EAAI,GACxBriD,KAAKsrJ,aAAe,GAGxBlsC,EAAKv7G,UAAUuuJ,wBAA0B,WACrC,GAAI9sJ,GAAItF,KACJgrJ,EAAU1lJ,EAAE0lJ,OAChBnc,GAAKvlI,IAAI0hJ,EAAQ,EAAE,GACnB1lJ,EAAE2lJ,QAAU,GAGhB7rC,EAAKv7G,UAAUwuJ,sBAAwB,WACnC,GAAI/sJ,GAAItF,KACJ8f,EAAIxa,EAAEk/G,QACVqqB,GAAK7lG,IAAKlpB,EAAGA,EAAGxa,EAAE0lJ,SAClB1lJ,EAAE8+G,iBAAmB9+G,EAAE2lJ,SAQ3B7rC,EAAKv7G,UAAUyuJ,aAAe,SAAS/iH,GACnC,GAAGvvC,KAAKiD,OAASm8G,EAAKuwC,QAAQ,CAC1B,GAAI7vI,GAAI9f,KAAKwkH,QACbqqB,GAAKzoI,MAAM0Z,EAAGA,EAAG5d,KAAK+3F,IAAI,EAAMj6F,KAAKyvJ,QAAQlgH,IAC7CvvC,KAAKokH,iBAAmBliH,KAAK+3F,IAAI,EAAMj6F,KAAK0vJ,eAAengH,KASnE6vE,EAAKv7G,UAAU8gJ,OAAS,WACpB,GAAIn6G,GAAIxqC,KAAKywI,UACbzwI,MAAKywI,WAAarxB,EAAK0wC,MACvB9vJ,KAAKuyJ,SAAW,EACb/nH,IAAM40E,EAAK0wC,OACV9vJ,KAAKqc,KAAK+iG,EAAKozC,cAQvBpzC,EAAKv7G,UAAU4uJ,MAAQ,WACnBzyJ,KAAKywI,WAAarxB,EAAKsxB,SACvB1wI,KAAKokH,gBAAkB,EACvBpkH,KAAKsrJ,aAAe,EACpBzc,EAAKvlI,IAAItJ,KAAKwkH,SAAS,EAAE,GACzBqqB,EAAKvlI,IAAItJ,KAAKqiD,MAAM,EAAE,GACtBriD,KAAKqc,KAAK+iG,EAAKszC,aAUnBtzC,EAAKv7G,UAAU8uJ,UAAY,SAASz+G,EAAM0+G,EAAWrjH,GACjD,GAAIvvC,KAAK4vJ,YAAc5vJ,KAAKiD,OAASm8G,EAAKsxB,SAA1C,CAIA1wI,KAAK6vJ,cAAe,CAEpB,IACIgD,IADa7yJ,KAAKywI,WACH5B,EAAKoB,cAAcjwI,KAAKwkH,UAAYtiH,KAAK+3F,IAAIj6F,KAAKokH,gBAAgB,IACjF0uC,EAAoB5wJ,KAAK+3F,IAAIj6F,KAAK+vJ,gBAAgB,EAGnD8C,IAAgBC,GACf9yJ,KAAKuyJ,SAAW,EAChBvyJ,KAAKywI,WAAarxB,EAAK0wC,QAEvB9vJ,KAAKuyJ,UAAYhjH,EACjBvvC,KAAKywI,WAAarxB,EAAK2zC,QAExB/yJ,KAAKuyJ,SAAWvyJ,KAAKgwJ,iBAChB4C,EAGA5yJ,KAAK6vJ,cAAe,EAFpB7vJ,KAAKyyJ,WAsBjBrzC,EAAKv7G,UAAUmvJ,wBAA0B,SAASC,EAAOl9F,GAIrD,MAHAk9F,GAAQA,GAASpkB,EAAKxiI,SACtBwiI,EAAKkB,IAAIkjB,EAAOjzJ,KAAK2H,SAAU3H,KAAKuvJ,kBACpC1gB,EAAKzoI,MAAM6sJ,EAAOA,EAAO,EAAEl9F,GACpBk9F,GAEX7zC,EAAKv7G,UAAUqvJ,+BAAiC,SAASn9F,GACrD,OAAQ/1D,KAAKsG,MAAQtG,KAAKwvJ,eAAiBz5F,GAS/CqpD,EAAKv7G,UAAUsrI,SAAW,SAAS76E,GAC/B,MAAOt0D,MAAKoyC,MAAM+gH,cAAcC,qBAAqBpzJ,KAAMs0D,IAM/D8qD,EAAKi0C,aACDpwJ,KAAM,UAMVm8G,EAAKszC,YACDzvJ,KAAM,SAMVm8G,EAAKozC,aACDvvJ,KAAM,UASVm8G,EAAKuwC,QAAU,EAQfvwC,EAAKmxB,OAAS,EAQdnxB,EAAKoxB,UAAY,EAOjBpxB,EAAK0wC,MAAQ,EAOb1wC,EAAK2zC,OAAS,EAOd3zC,EAAKsxB,SAAW,IAGb4iB,oBAAoB,EAAEC,yBAAyB,GAAGnkB,eAAe,GAAGsU,mBAAmB,GAAGzZ,oBAAsB,EAAEC,qBAAuB,EAAEuE,cAAc,IAAI+kB,IAAI,SAASr9D,EAAQx0D,GA0BrL,QAAS8xH,GAAa5jB,EAAMC,EAAMniH,GAC9BA,EAAUA,MAEV+lI,EAAO3vJ,KAAK/D,KAAM6vI,EAAOC,EAAOniH,GAOhC3tB,KAAKqlJ,aAAexW,EAAK8G,WAAW,EAAE,GAOtC31I,KAAKslJ,aAAezW,EAAK8G,WAAW,EAAE,GAEnChoH,EAAQ03H,cAAexW,EAAKroG,KAAKxmC,KAAKqlJ,aAAc13H,EAAQ03H,cAC5D13H,EAAQ23H,cAAezW,EAAKroG,KAAKxmC,KAAKslJ,aAAc33H,EAAQ23H,cAC5D33H,EAAQ43H,cAAevlJ,KAAK2zJ,gBAAgBhmI,EAAQ43H,cACpD53H,EAAQ63H,cAAexlJ,KAAK4zJ,gBAAgBjmI,EAAQ63H,aAEvD;GAAID,GAAe1W,EAAKxiI,SACpBm5I,EAAe3W,EAAKxiI,QACxBrM,MAAK6zJ,gBAAgBtO,GACrBvlJ,KAAK8zJ,gBAAgBtO,EACrB,IAAIuO,GAAgBllB,EAAKpnG,SAAS89G,EAAcC,EAOhDxlJ,MAAKg0J,WAA4C,gBAAxBrmI,GAAkB,WAAiBA,EAAQqmI,WAAaD,EA5DrF,CAAA,GAA0OllB,IAA9N14C,EAAQ,wBAAuHA,EAAQ,uBAA8FA,EAAQ,iBACrPu9D,EAASv9D,EAAQ,WACTA,GAAQ,kBAEpBx0D,EAAOD,QAAU+xH,EA0DjBA,EAAa5vJ,UAAY,GAAI6vJ,GAO7BD,EAAa5vJ,UAAU8vJ,gBAAkB,SAASpO,GAC9CvlJ,KAAK6vI,MAAMqe,aAAaluJ,KAAKqlJ,aAAcE,IAQ/CkO,EAAa5vJ,UAAU+vJ,gBAAkB,SAASpO,GAC9CxlJ,KAAK8vI,MAAMoe,aAAaluJ,KAAKslJ,aAAcE,IAQ/CiO,EAAa5vJ,UAAUgwJ,gBAAkB,SAAS58I,GAC9CjX,KAAK6vI,MAAMyhB,aAAar6I,EAAQjX,KAAKqlJ,eAQzCoO,EAAa5vJ,UAAUiwJ,gBAAkB,SAAS78I,GAC9CjX,KAAK8vI,MAAMwhB,aAAar6I,EAAQjX,KAAKslJ,cAGzC,IAAI2O,GAA4BplB,EAAKxiI,SACjC6nJ,EAA4BrlB,EAAKxiI,SACjC8nJ,EAA4BtlB,EAAKxiI,SACjC+nJ,EAA4BvlB,EAAKxiI,SACjCgoJ,EAA4BxlB,EAAKxiI,SACjCioJ,EAA4BzlB,EAAKxiI,SACjCkoJ,EAA4B1lB,EAAKxiI,SACjCmoJ,EAA4B3lB,EAAKxiI,SACjCooJ,EAA4B5lB,EAAKxiI,QAMrConJ,GAAa5vJ,UAAUutJ,WAAa,WAChC,GAAIpiF,GAAIhvE,KAAK2zI,UACTnuI,EAAIxF,KAAKyvJ,QACThrH,EAAIzkC,KAAKg0J,WACTnkB,EAAQ7vI,KAAK6vI,MACbC,EAAQ9vI,KAAK8vI,MACbnmH,EAAIsqI,EACJS,EAASR,EACTr0I,EAAIs0I,EACJxuH,EAAIyuH,EACJvwD,EAAM4wD,EAENlP,EAAe8O,EACf7O,EAAe8O,EACf5O,EAAK6O,EACL5O,EAAK6O,CAGTx0J,MAAK6zJ,gBAAgBtO,GACrBvlJ,KAAK8zJ,gBAAgBtO,GAGrB3W,EAAKkB,IAAI2V,EAAIH,EAAc1V,EAAMloI,UACjCknI,EAAKkB,IAAI4V,EAAIH,EAAc1V,EAAMnoI,UAGjCknI,EAAKkB,IAAIpmH,EAAG67H,EAAcD,EAC1B,IAAIoP,GAAO9lB,EAAKvzG,IAAI3R,EACpBklH,GAAK/kG,UAAU4qH,EAAO/qI,GAMtBklH,EAAKkB,IAAIlwH,EAAGiwH,EAAMtrB,SAAUqrB,EAAMrrB,UAClCqqB,EAAKof,QAAQpqD,EAAKisC,EAAM1rB,gBAAiBuhC,GACzC9W,EAAK7lG,IAAInpB,EAAGA,EAAGgkF,GACfgrC,EAAKof,QAAQpqD,EAAKgsC,EAAMzrB,gBAAiBshC,GACzC7W,EAAKkB,IAAIlwH,EAAGA,EAAGgkF,GAGfgrC,EAAKzoI,MAAMu/B,EAAG+uH,GAAS1lF,GAAG2lF,EAAKlwH,GAAKj/B,EAAEqpI,EAAK5kG,IAAIpqB,EAAE60I,IAGjD7lB,EAAKkB,IAAKF,EAAMxtF,MAAOwtF,EAAMxtF,MAAO1c,GACpCkpG,EAAK7lG,IAAK8mG,EAAMztF,MAAOytF,EAAMztF,MAAO1c,EAGpC,IAAIivH,GAAS/lB,EAAKwG,YAAYqQ,EAAI//G,GAC9BkvH,EAAShmB,EAAKwG,YAAYsQ,EAAIhgH,EAClCkqG,GAAMyb,cAAgBsJ,EACtB9kB,EAAMwb,cAAgBuJ,KAGvBzlB,eAAe,GAAGC,iBAAiB,GAAGylB,WAAW,GAAG7qB,oBAAsB,EAAEC,qBAAuB,IAAI6qB,IAAI,SAAS5+D,EAAQx0D,GAqB/H,QAASqzH,GAAiBnlB,EAAOC,EAAOniH,GACpCA,EAAUA,MAEV+lI,EAAO3vJ,KAAK/D,KAAM6vI,EAAOC,EAAOniH,GAOhC3tB,KAAKi1J,UAA0C,gBAAvBtnI,GAAiB,UAAiBA,EAAQsnI,UAAYnlB,EAAMxpI,MAAQupI,EAAMvpI,MA9BtG,GACIotJ,IADQv9D,EAAQ,wBAAuHA,EAAQ,uBAAkGA,EAAQ,gBAChPA,EAAQ,YAErBx0D,GAAOD,QAAUszH,EA6BjBA,EAAiBnxJ,UAAY,GAAI6vJ,GAMjCsB,EAAiBnxJ,UAAUutJ,WAAa,WACpC,GAAIpiF,GAAIhvE,KAAK2zI,UACTnuI,EAAIxF,KAAKyvJ,QACThrH,EAAIzkC,KAAKi1J,UACTplB,EAAQ7vI,KAAK6vI,MACbC,EAAQ9vI,KAAK8vI,MACbvrI,EAAIurI,EAAMxpI,MAAQupI,EAAMvpI,MACxBuZ,EAAIiwH,EAAM1rB,gBAAkByrB,EAAMzrB,gBAElC2iC,GAAW/3E,GAAKzqE,EAAIkgC,GAAKj/B,EAAIqa,EAAI,CAErCgwH,GAAMyb,cAAgBvE,EACtBjX,EAAMwb,cAAgBvE,KAGvB3X,eAAe,GAAG0lB,WAAW,GAAG7qB,oBAAsB,EAAEC,qBAAuB,IAAIgrB,IAAI,SAAS/+D,EAAQx0D,GAqB3G,QAAS+xH,GAAO7jB,EAAOC,EAAOniH,GAC1BA,EAAUyW,EAAM4sG,SAASrjH,GACrBgmH,UAAW,IACX8b,QAAS,IAQbzvJ,KAAK2zI,UAAYhmH,EAAQgmH,UAOzB3zI,KAAKyvJ,QAAU9hI,EAAQ8hI,QAOvBzvJ,KAAK6vI,MAAQA,EAOb7vI,KAAK8vI,MAAQA,EApDjB,GACI1rG,IADQ+xD,EAAQ,wBAAuHA,EAAQ,uBAAwFA,EAAQ,gBACvOA,EAAQ,kBAEpBx0D,GAAOD,QAAUgyH,EAwDjBA,EAAO7vJ,UAAUutJ,WAAa,eAI3BhiB,eAAe,GAAGC,iBAAiB,GAAGpF,oBAAsB,EAAEC,qBAAuB,IAAIirB,IAAI,SAASh/D,EAAQx0D,GACrGw0D,EAAQ,wBAAuHA,EAAQ,sBACnJx0D,GAAOD,SACHitG,KAAgCx4C,EAAQ,oBACxCwwD,kBAAgCxwD,EAAQ,iCACxCipB,KAAgCjpB,EAAQ,kBACxCo5C,WAAgCp5C,EAAQ,0BACxCi/D,QAAgCj/D,EAAQ,oBACxCnvD,OAAgCmvD,EAAQ,mBACxCouD,WAAgCpuD,EAAQ,4BACxCm/C,gBAAgCn/C,EAAQ,+BACxCg3D,gBAAgCh3D,EAAQ,8BACxCq/C,OAAgCr/C,EAAQ,mBACxCivD,mBAAgCjvD,EAAQ,oCACxCy9C,SAAgCz9C,EAAQ,wBACxC62D,aAAgC72D,EAAQ,yBACxCo/C,iBAAgCp/C,EAAQ,gCACxCuwD,eAAgCvwD,EAAQ,gCACxC46C,eAAgC56C,EAAQ,8BACxCk/D,SAAgCl/D,EAAQ,qBACxCm/D,YAAgCn/D,EAAQ,wBACxCvpD,KAAgCupD,EAAQ,iBACxCgxD,eAAgChxD,EAAQ,gCACxCm3D,SAAgCn3D,EAAQ,uBACxC68C,YAAgC78C,EAAQ,2BACxC08C,gBAAgC18C,EAAQ,+BACxChH,SAAgCgH,EAAQ,qBACxCo/D,MAAgCp/D,EAAQ,kBACxCkzD,mBAAgClzD,EAAQ,oCACxCsxD,oBAAgCtxD,EAAQ,qCACxCjvF,UAAgCivF,EAAQ,sBACxC0zD,2BAAgC1zD,EAAQ,0CACxC2tD,cAAgC3tD,EAAQ,6BACxCs/C,MAAgCt/C,EAAQ,kBACxCq/D,OAAgCr/D,EAAQ,mBACxCu9D,OAAgCv9D,EAAQ,oBACxCs9D,aAAgCt9D,EAAQ,0BACxC6+D,iBAAgC7+D,EAAQ,8BACxC/xD,MAAgC+xD,EAAQ,iBACxClxC,MAAgCkxC,EAAQ,iBACxC04C,KAAgC14C,EAAQ,eACxC43B,QAAgC53B,EAAQ,mBAAmB43B,WAG5D0nC,kBAAkB,EAAEC,mBAAmB,EAAEC,yBAAyB,GAAGC,6BAA6B,GAAGC,8BAA8B,GAAGC,0BAA0B,GAAGC,4BAA4B,GAAGC,2BAA2B,GAAGC,mCAAmC,GAAGC,+BAA+B,GAAGC,+BAA+B,GAAGC,oCAAoC,GAAGC,mCAAmC,GAAGC,gCAAgC,GAAGC,8BAA8B,GAAGC,uBAAuB,GAAGC,+BAA+B,GAAGC,yCAAyC,GAAGC,wBAAwB,GAAGC,6BAA6B,GAAGC,sBAAsB,GAAGC,cAAc,GAAGC,iBAAiB,GAAGC,yBAAyB,GAAGC,6BAA6B,GAAGC,mBAAmB,GAAGC,mBAAmB,GAAGC,kBAAkB,GAAGC,kBAAkB,GAAGC,uBAAuB,GAAGC,gBAAgB,GAAGC,oBAAoB,GAAGC,iBAAiB,GAAGC,qBAAqB,GAAGC,iBAAiB,GAAGC,oBAAoB,GAAGC,kBAAkB,GAAGC,gBAAgB,GAAGC,gBAAgB,GAAG9tB,oBAAsB,EAAEC,qBAAuB,IAAI8tB,IAAI,SAAS7hE,EAAQx0D,GAmB/mC,QAASyzH,GAAQ/wJ,EAAQoD,GAMrBzH,KAAKqE,OAASA,GAAU,EAMxBrE,KAAKyH,OAASA,GAAU,EAExBguI,EAAM1xI,KAAK/D,KAAKy1I,EAAM6D,SAhC1B,GAAmO7D,IAAvNt/C,EAAQ,wBAAuHA,EAAQ,uBAAwFA,EAAQ,YAC/O04C,EAAO14C,EAAQ,eAEnBx0D,GAAOD,QAAU0zH,EA+BjBA,EAAQvxJ,UAAY,GAAI4xI,GASxB2f,EAAQvxJ,UAAUqtJ,uBAAyB,SAAS9pC,GAEhD,GAAIz9F,GAAI3pB,KAAKyH,OACT4d,EAAIrlB,KAAKqE,OAASslB,EAClB8Q,EAAM,EAAF9Q,CACR,OAAOy9F,IAAQ3sF,EAAEA,EAAIpV,EAAEA,GAAK,IAMhC+vI,EAAQvxJ,UAAUitJ,qBAAuB,WACrC9wJ,KAAKkwI,eAAiBlwI,KAAKyH,OAASzH,KAAKqE,OAAO,GAMpD+wJ,EAAQvxJ,UAAUo0J,WAAa,WAC3Bj4J,KAAKmuC,KAAOjsC,KAAKC,GAAKnC,KAAKyH,OAASzH,KAAKyH,OAAuB,EAAdzH,KAAKyH,OAAazH,KAAKqE,OAG7E,IAAIslB,GAAIklH,EAAKxiI,QAQb+oJ,GAAQvxJ,UAAUgtJ,YAAc,SAAS/oH,EAAKngC,EAAUrB,GACpD,GAAImB,GAASzH,KAAKyH,MAGlBonI,GAAKvlI,IAAIqgB,EAAE3pB,KAAKqE,OAAS,EAAE,GACd,IAAViC,GACCuoI,EAAKxoI,OAAOsjB,EAAEA,EAAErjB,GAIpBuoI,EAAKvlI,IAAIw+B,EAAIgnG,WAAa5sI,KAAKgT,IAAIyU,EAAE,GAAGliB,GAASkiB,EAAE,GAAGliB,GAC5BvF,KAAKgT,IAAIyU,EAAE,GAAGliB,GAASkiB,EAAE,GAAGliB,IACtDonI,EAAKvlI,IAAIw+B,EAAI8mG,WAAa1sI,KAAK23B,IAAIlQ,EAAE,GAAGliB,GAASkiB,EAAE,GAAGliB,GAC5BvF,KAAK23B,IAAIlQ,EAAE,GAAGliB,GAASkiB,EAAE,GAAGliB,IAGtDonI,EAAK7lG,IAAIlB,EAAI8mG,WAAY9mG,EAAI8mG,WAAYjnI,GACzCknI,EAAK7lG,IAAIlB,EAAIgnG,WAAYhnG,EAAIgnG,WAAYnnI,MAG1CynI,eAAe,GAAG8oB,UAAU,GAAGjuB,oBAAsB,EAAEC,qBAAuB,IAAIiuB,IAAI,SAAShiE,EAAQx0D,GAkB1G,QAASqF,GAAOv/B,GAOZzH,KAAKyH,OAASA,GAAU,EAExBguI,EAAM1xI,KAAK/D,KAAKy1I,EAAM8G,QA1B1B,GAAkO9G,IAAtNt/C,EAAQ,wBAAuHA,EAAQ,uBAAuFA,EAAQ,YAC7O04C,EAAO14C,EAAQ,eAEpBx0D,GAAOD,QAAUsF,EAyBjBA,EAAOnjC,UAAY,GAAI4xI,GAOvBzuG,EAAOnjC,UAAUqtJ,uBAAyB,SAAS9pC,GAC/C,GAAIz9F,GAAI3pB,KAAKyH,MACb,OAAO2/G,GAAOz9F,EAAIA,EAAI,GAO1Bqd,EAAOnjC,UAAUitJ,qBAAuB,WACpC9wJ,KAAKkwI,eAAiBlwI,KAAKyH,QAO/Bu/B,EAAOnjC,UAAUo0J,WAAa,WAC1Bj4J,KAAKmuC,KAAOjsC,KAAKC,GAAKnC,KAAKyH,OAASzH,KAAKyH,QAS7Cu/B,EAAOnjC,UAAUgtJ,YAAc,SAAS/oH,EAAKngC,GACzC,GAAIgiB,GAAI3pB,KAAKyH,MACbonI,GAAKvlI,IAAIw+B,EAAIgnG,WAAanlH,EAAIA,GAC9BklH,EAAKvlI,IAAIw+B,EAAI8mG,YAAajlH,GAAIA,GAC3BhiB,IACCknI,EAAK7lG,IAAIlB,EAAI8mG,WAAY9mG,EAAI8mG,WAAYjnI,GACzCknI,EAAK7lG,IAAIlB,EAAIgnG,WAAYhnG,EAAIgnG,WAAYnnI,OAI9CynI,eAAe,GAAG8oB,UAAU,GAAGjuB,oBAAsB,EAAEC,qBAAuB,IAAIkuB,IAAI,SAASjiE,EAAQx0D,GAqB1G,QAAS6zG,GAAOriH,EAAUohD,GAOtBv0E,KAAKmzB,YAOLnzB,KAAKu0E,OAGL,KAAI,GAAIpwE,GAAE,EAAGA,EAAEgvB,EAAS9uB,OAAQF,IAAI,CAChC,GAAI2b,GAAI+uH,EAAKxiI,QACbwiI,GAAKroG,KAAK1mB,EAAEqT,EAAShvB,IACrBnE,KAAKmzB,SAAS7uB,KAAKwb,GAGvB,GAAGy0D,EAEC,IAAI,GAAIpwE,GAAE,EAAGA,EAAIowE,EAAKlwE,OAAQF,IAAI,CAC9B,GAAIywE,GAAOi6D,EAAKxiI,QAChBwiI,GAAKroG,KAAKouC,EAAML,EAAKpwE,IACrBnE,KAAKu0E,KAAKjwE,KAAKswE,OAInB,KAAI,GAAIzwE,GAAI,EAAGA,EAAIgvB,EAAS9uB,OAAQF,IAAI,CAEpC,GAAIw7I,GAAcxsH,EAAShvB,GACvBy7I,EAAczsH,GAAUhvB,EAAE,GAAKgvB,EAAS9uB,QAExCm6F,EAASqwC,EAAKxiI,QAClBwiI,GAAKkB,IAAIvxC,EAAQohD,EAAaD,GAG9B9Q,EAAKmJ,WAAWx5C,EAAQA,GACxBqwC,EAAK/kG,UAAU00D,EAAQA,GAEvBx+F,KAAKu0E,KAAKjwE,KAAKk6F,GAkCvB,GAzBAx+F,KAAK2xJ,aAAe9iB,EAAK8G,WAAW,EAAE,GAOtC31I,KAAKoqB,aAEFpqB,KAAKmzB,SAAS9uB,SACbrE,KAAK4xJ,kBACL5xJ,KAAK6xJ,sBAQT7xJ,KAAKkwI,eAAiB,EAEtBuF,EAAM1xI,KAAK/D,KAAMy1I,EAAM6C,QAEvBt4I,KAAK8wJ,uBACL9wJ,KAAKi4J,aACFj4J,KAAKmuC,KAAO,EACX,KAAM,IAAIrhC,OAAM,8DAnGxB,CAAA,GAAkO2oI,IAAtNt/C,EAAQ,wBAAuHA,EAAQ,uBAAuFA,EAAQ,YAC9O04C,EAAO14C,EAAQ,gBACfkiE,EAAQliE,EAAQ,gBACPA,GAAQ,eAErBx0D,EAAOD,QAAU8zG,EAiGjBA,EAAO3xI,UAAY,GAAI4xI,EAEvB,IAAI6iB,GAAUzpB,EAAKxiI,SACfksJ,EAAU1pB,EAAKxiI,QAUnBmpI,GAAO3xI,UAAU20J,qBAAuB,SAAShY,EAAWvpI,GAQxD,IAAI,GALA6I,GACAvW,EAHA2L,EAAI,KACJ2kB,EAAI,KAGJ2mH,EAAY8X,EAGRn0J,EAAE,EAAGA,EAAEnE,KAAKmzB,SAAS9uB,OAAQF,IACjC2b,EAAI9f,KAAKmzB,SAAShvB,GAClBoF,EAAQslI,EAAK5kG,IAAInqB,EAAG0gI,IACT,OAARtrI,GAAgB3L,EAAQ2L,KACvBA,EAAM3L,IAEC,OAARswB,GAAwBA,EAARtwB,KACfswB,EAAMtwB,EAId,IAAGswB,EAAM3kB,EAAI,CACT,GAAIsiF,GAAI39D,CACRA,GAAM3kB,EACNA,EAAMsiF,EAGVq3C,EAAKvlI,IAAI2N,EAAQ4iB,EAAK3kB,IAG1BsgI,EAAO3xI,UAAU40J,qBAAuB,SAASjY,EAAWkY,EAAaC,EAAY1hJ,GACjF,GAAIspI,GAAYgY,CAEhBv4J,MAAKw4J,qBAAqBhY,EAAWvpI,GAGnB,IAAf0hJ,EACC9pB,EAAKxoI,OAAOk6I,EAAWC,EAAWmY,GAElCpY,EAAYC,CAEhB,IAAI95H,GAASmoH,EAAK5kG,IAAIyuH,EAAanY,EAEnC1R,GAAKvlI,IAAI2N,EAAQA,EAAO,GAAKyP,EAAQzP,EAAO,GAAKyP,IAQrD8uH,EAAO3xI,UAAU+tJ,gBAAkB,WAE/B5xJ,KAAKoqB,UAAU/lB,OAAS,CAIxB,KAAI,GADAu0J,MACIz0J,EAAE,EAAGA,EAAEnE,KAAKmzB,SAAS9uB,OAAQF,IAAI,CACrC,GAAI2b,GAAI9f,KAAKmzB,SAAShvB,EACtBy0J,GAAWt0J,KAAKwb,EAAE,GAAGA,EAAE,IAO3B,IAAI,GAHAsK,GAAYiuI,EAAMz6I,YAAYg7I,GAG1Bz0J,EAAE,EAAGA,EAAEimB,EAAU/lB,OAAQF,GAAG,EAAE,CAClC,GAAI2yI,GAAM1sH,EAAUjmB,GAChB4yI,EAAM3sH,EAAUjmB,EAAE,GAClB00J,EAAMzuI,EAAUjmB,EAAE,EAGtBnE,MAAKoqB,UAAU9lB,MAAMwyI,EAAIC,EAAI8hB,KAIrC,EAAA,GAAIC,GAA8BjqB,EAAKxiI,SACnC0sJ,EAAyClqB,EAAKxiI,SAC9C2sJ,EAAuBnqB,EAAKxiI,SAC5B4sJ,EAAuBpqB,EAAKxiI,SAC5B6sJ,EAAuBrqB,EAAKxiI,QACJwiI,GAAKxiI,SACLwiI,EAAKxiI,SACLwiI,EAAKxiI,SACNwiI,EAAKxiI,SAMhCmpI,EAAO3xI,UAAUguJ,mBAAqB,WAClC,GAAIznI,GAAYpqB,KAAKoqB,UACjBP,EAAQ7pB,KAAKmzB,SACbu+H,EAAK1xJ,KAAK2xJ,aACV7mH,EAAWguH,EAEXzzJ,EAAI2zJ,EACJ1zJ,EAAI2zJ,EACJ1zJ,EAAI2zJ,EAIJC,EAAsBJ,CAE1BlqB,GAAKvlI,IAAIooJ,EAAG,EAAE,EAGd,KAAI,GAFAjB,GAAY,EAERtsJ,EAAE,EAAGA,IAAIimB,EAAU/lB,OAAQF,IAAI,CACnC,GAAIqzF,GAAIptE,EAAUjmB,GACdkB,EAAIwkB,EAAM2tE,EAAE,IACZlyF,EAAIukB,EAAM2tE,EAAE,IACZjyF,EAAIskB,EAAM2tE,EAAE,GAEhBq3C,GAAK/jG,SAASA,EAASzlC,EAAEC,EAAEC,EAI3B,IAAIykC,GAAIwrG,EAAO4jB,aAAa/zJ,EAAEC,EAAEC,EAChCkrJ,IAAazmH,EAGb6kG,EAAKzoI,MAAM+yJ,EAAqBruH,EAAUd,GAC1C6kG,EAAK7lG,IAAI0oH,EAAIA,EAAIyH,GAGrBtqB,EAAKzoI,MAAMsrJ,EAAGA,EAAG,EAAEjB,IAUvBjb,EAAO3xI,UAAUqtJ,uBAAyB,SAAS9pC,GAI/C,IAAI,GAHAz6F,GAAQ,EACR0sI,EAAQ,EACRv6F,EAAI9+D,KAAKmzB,SAAS9uB,OACdQ,EAAIi6D,EAAE,EAAG36D,EAAI,EAAO26D,EAAJ36D,EAAOU,EAAIV,EAAGA,IAAK,CACvC,GAAIg4F,GAAKn8F,KAAKmzB,SAAStuB,GACnB6pC,EAAK1uC,KAAKmzB,SAAShvB,GACnBkB,EAAInD,KAAKirB,IAAI0hH,EAAKwG,YAAYl5C,EAAGztD,IACjCppC,EAAIupI,EAAK5kG,IAAIyE,EAAGA,GAAMmgG,EAAK5kG,IAAIyE,EAAGytD,GAAM0yC,EAAK5kG,IAAIkyD,EAAGA,EACxDxvE,IAAStnB,EAAIC,EACb+zJ,GAASh0J,EAEb,MAAQ+hH,GAAO,GAAQz6F,EAAQ0sI,IAOnC7jB,EAAO3xI,UAAUitJ,qBAAuB,WAIpC,IAAI,GAHAjnI,GAAQ7pB,KAAKmzB,SACb+rD,EAAK,EAED/6E,EAAE,EAAGA,IAAI0lB,EAAMxlB,OAAQF,IAAI,CAC/B,GAAIolI,GAAKsF,EAAKoB,cAAcpmH,EAAM1lB,GAC/BolI,GAAKrqD,IACJA,EAAKqqD,GAIbvpI,KAAKkwI,eAAiBhuI,KAAKgrB,KAAKgyD,IAYpCs2D,EAAO4jB,aAAe,SAAS/zJ,EAAEC,EAAEC,GAC/B,MAAuE,KAA7DD,EAAE,GAAKD,EAAE,KAAKE,EAAE,GAAKF,EAAE,KAAOE,EAAE,GAAKF,EAAE,KAAKC,EAAE,GAAKD,EAAE,MAOnEmwI,EAAO3xI,UAAUo0J,WAAa,WAC1Bj4J,KAAK4xJ,kBACL5xJ,KAAKmuC,KAAO,CAIZ,KAAI,GAFA/jB,GAAYpqB,KAAKoqB,UACjBP,EAAQ7pB,KAAKmzB,SACThvB,EAAE,EAAGA,IAAIimB,EAAU/lB,OAAQF,IAAI,CACnC,GAAIqzF,GAAIptE,EAAUjmB,GACdkB,EAAIwkB,EAAM2tE,EAAE,IACZlyF,EAAIukB,EAAM2tE,EAAE,IACZjyF,EAAIskB,EAAM2tE,EAAE,IAGZxtD,EAAIwrG,EAAO4jB,aAAa/zJ,EAAEC,EAAEC,EAChCvF,MAAKmuC,MAAQnE,IAUrBwrG,EAAO3xI,UAAUgtJ,YAAc,SAAS/oH,EAAKngC,EAAUrB,GACnDwhC,EAAIinG,cAAc/uI,KAAKmzB,SAAUxrB,EAAUrB,EAAO,MAGnDgzJ,gBAAgB,GAAGlqB,eAAe,GAAG8oB,UAAU,GAAGjuB,oBAAsB,EAAEC,qBAAuB,EAAEuE,cAAc,IAAI8qB,IAAI,SAASpjE,EAAQx0D,GAmC7I,QAAS2zH,GAAY1+I,EAAM+W,GAOvB,GANAA,EAAUyW,EAAM4sG,SAASrjH,GACrB6rI,SAAW,KACXC,SAAW,KACX9W,aAAe,KAGK,OAArBh1H,EAAQ8rI,UAA0C,OAArB9rI,EAAQ6rI,SAAkB,CACtD7rI,EAAQ6rI,SAAW5iJ,EAAK,GACxB+W,EAAQ8rI,SAAW7iJ,EAAK,EACxB,KAAI,GAAIzS,GAAE,EAAGA,IAAMyS,EAAKvS,OAAQF,IAAI,CAChC,GAAI2b,GAAIlJ,EAAKzS,EACV2b,GAAI6N,EAAQ6rI,WACX7rI,EAAQ6rI,SAAW15I,GAEpBA,EAAI6N,EAAQ8rI,WACX9rI,EAAQ8rI,SAAW35I,IAS/B9f,KAAK4W,KAAOA,EAMZ5W,KAAKw5J,SAAW7rI,EAAQ6rI,SAMxBx5J,KAAKy5J,SAAW9rI,EAAQ8rI,SAMxBz5J,KAAK2iJ,aAAeh1H,EAAQg1H,aAE5BlN,EAAM1xI,KAAK/D,KAAKy1I,EAAM4M,aA/E1B,GAAuO5M,IAA3Nt/C,EAAQ,wBAAuHA,EAAQ,uBAA4FA,EAAQ,YAElP/xD,GADO+xD,EAAQ,gBACPA,EAAQ,kBAErBx0D,GAAOD,QAAU4zH,EA6EjBA,EAAYzxJ,UAAY,GAAI4xI,GAO5B6f,EAAYzxJ,UAAUqtJ,uBAAyB,WAC3C,MAAO7kH,QAAOG,WAGlB8oH,EAAYzxJ,UAAUitJ,qBAAuB,WACzC9wJ,KAAKkwI,eAAiB7jG,OAAOG,WAGjC8oH,EAAYzxJ,UAAUo0J,WAAa,WAG/B,IAAI,GAFArhJ,GAAO5W,KAAK4W,KACZu3B,EAAO,EACHhqC,EAAE,EAAGA,EAAEyS,EAAKvS,OAAO,EAAGF,IAC1BgqC,IAASv3B,EAAKzS,GAAGyS,EAAKzS,EAAE,IAAM,EAAInE,KAAK2iJ,YAE3C3iJ,MAAKmuC,KAAOA,GAShBmnH,EAAYzxJ,UAAUgtJ,YAAc,SAAS/oH,EAAKngC,GAE9CmgC,EAAIgnG,WAAW,GAAK9uI,KAAK2iJ,aAAe3iJ,KAAK4W,KAAKvS,OAASsD,EAAS,GACpEmgC,EAAIgnG,WAAW,GAAK9uI,KAAKw5J,SAAW7xJ,EAAS,GAC7CmgC,EAAI8mG,WAAW,GAAKjnI,EAAS,GAC7BmgC,EAAI8mG,WAAW,IAAMviG,OAAOG,aAG7B4iG,eAAe,GAAGC,iBAAiB,GAAG6oB,UAAU,GAAGjuB,oBAAsB,EAAEC,qBAAuB,IAAIwvB,IAAI,SAASvjE,EAAQx0D,GAa9H,QAASiL,GAAKvoC,GAOVrE,KAAKqE,OAASA,GAAU,EAExBoxI,EAAM1xI,KAAK/D,KAAKy1I,EAAM4C,MArB1B,GAAgO5C,IAApNt/C,EAAQ,wBAAuHA,EAAQ,uBAAqFA,EAAQ,YAC5O04C,EAAO14C,EAAQ,eAEnBx0D,GAAOD,QAAUkL,EAoBjBA,EAAK/oC,UAAY,GAAI4xI,GACrB7oG,EAAK/oC,UAAUqtJ,uBAAyB,SAAS9pC,GAC7C,MAAOA,GAAOllH,KAAK+3F,IAAIj6F,KAAKqE,OAAO,GAAK,IAG5CuoC,EAAK/oC,UAAUitJ,qBAAuB,WAClC9wJ,KAAKkwI,eAAiBlwI,KAAKqE,OAAO,EAGtC,IAAIT,IAAUirI,EAAKxiI,SAASwiI,EAAKxiI,SAQjCugC,GAAK/oC,UAAUgtJ,YAAc,SAAS/oH,EAAKngC,EAAUrB,GACjD,GAAIijI,GAAKvpI,KAAKqE,OAAS,CACvBwqI,GAAKvlI,IAAI1F,EAAO,IAAK2lI,EAAK,GAC1BsF,EAAKvlI,IAAI1F,EAAO,GAAK2lI,EAAK,GAC1BzhG,EAAIinG,cAAcnrI,EAAO+D,EAASrB,EAAM,MAIzC8oI,eAAe,GAAG8oB,UAAU,GAAGjuB,oBAAsB,EAAEC,qBAAuB,IAAIyvB,IAAI,SAASxjE,EAAQx0D,GAY1G,QAASwtD,KACLsmD,EAAM1xI,KAAK/D,KAAKy1I,EAAMuG,UAZ1B,GAAoOvG,IAAxNt/C,EAAQ,wBAAuHA,EAAQ,uBAAyFA,EAAQ,YAChP04C,EAAO14C,EAAQ,eAEnBx0D,GAAOD,QAAUytD,EAWjBA,EAAStrF,UAAY,GAAI4xI,GACzBtmD,EAAStrF,UAAUqtJ,uBAAyB,WACxC,MAAO,IAGX/hE,EAAStrF,UAAUitJ,qBAAuB,WACtC9wJ,KAAKkwI,eAAiB,GAS1B/gD,EAAStrF,UAAUgtJ,YAAc,SAAS/oH,EAAKngC,GAC3CknI,EAAKroG,KAAKsB,EAAI8mG,WAAYjnI,GAC1BknI,EAAKroG,KAAKsB,EAAIgnG,WAAYnnI,MAG3BynI,eAAe,GAAG8oB,UAAU,GAAGjuB,oBAAsB,EAAEC,qBAAuB,IAAI0vB,IAAI,SAASzjE,EAAQx0D,GAa1G,QAAS4zH,KACL9f,EAAM1xI,KAAK/D,KAAKy1I,EAAM2F,OAb1B,CAAA,GAAiO3F,IAArNt/C,EAAQ,wBAAuHA,EAAQ,uBAAuFA,EAAQ,YAC7O04C,EAAQ14C,EAAQ,eACRA,GAAQ,kBAErBx0D,EAAOD,QAAU6zH,EAWjBA,EAAM1xJ,UAAY,GAAI4xI,GAMtB8f,EAAM1xJ,UAAUqtJ,uBAAyB,WACrC,MAAO,IAOXqE,EAAM1xJ,UAAUitJ,qBAAuB,WACnC9wJ,KAAKkwI,eAAiB7jG,OAAOG,WASjC+oH,EAAM1xJ,UAAUgtJ,YAAc,SAAS/oH,EAAKngC,EAAUrB,GAClD,GAAIjB,GAAI,EACJiE,EAAMulI,EAAKvlI,GACM,iBAAZ,KACLjE,EAAIiB,GAAS,EAAEpE,KAAKC,KAGf,IAANkD,GAECiE,EAAIw+B,EAAI8mG,YAAaviG,OAAOG,WAAYH,OAAOG,WAC/CljC,EAAIw+B,EAAIgnG,WAAaziG,OAAOG,UAAY,IAClCnnC,IAAMnD,KAAKC,GAAK,GAEtBmH,EAAIw+B,EAAI8mG,WAAY,GAAIviG,OAAOG,WAC/BljC,EAAIw+B,EAAIgnG,WAAiBziG,OAAOG,UAAYH,OAAOG,YAC7CnnC,IAAMnD,KAAKC,IAEjBmH,EAAIw+B,EAAI8mG,YAAaviG,OAAOG,UAAW,GACvCljC,EAAIw+B,EAAIgnG,WAAaziG,OAAOG,UAAWH,OAAOG,YACxCnnC,IAAM,EAAEnD,KAAKC,GAAG,GAEtBmH,EAAIw+B,EAAI8mG,YAAaviG,OAAOG,WAAgBH,OAAOG,WACnDljC,EAAIw+B,EAAIgnG,WAAa,EAAIziG,OAAOG,aAGhCljC,EAAIw+B,EAAI8mG,YAAaviG,OAAOG,WAAYH,OAAOG,WAC/CljC,EAAIw+B,EAAIgnG,WAAaziG,OAAOG,UAAYH,OAAOG,YAGnDqiG,EAAK7lG,IAAIlB,EAAI8mG,WAAY9mG,EAAI8mG,WAAYjnI,GACzCknI,EAAK7lG,IAAIlB,EAAIgnG,WAAYhnG,EAAIgnG,WAAYnnI,IAG7C4tJ,EAAM1xJ,UAAUo0J,WAAa,WACzBj4J,KAAKmuC,KAAO9B,OAAOG,aAIpB4iG,eAAe,GAAGC,iBAAiB,GAAG6oB,UAAU,GAAGjuB,oBAAsB,EAAEC,qBAAuB,IAAI2vB,IAAI,SAAS1jE,EAAQx0D,GAe9H,QAASz6B,GAAUC,EAAOC,GAOtBpH,KAAKmH,MAAQA,GAAS,EAOtBnH,KAAKoH,OAASA,GAAU,CAExB,IAAIyiB,IAAYglH,EAAK8G,YAAYxuI,EAAM,GAAIC,EAAO,GAClCynI,EAAK8G,WAAYxuI,EAAM,GAAIC,EAAO,GAClCynI,EAAK8G,WAAYxuI,EAAM,EAAIC,EAAO,GAClCynI,EAAK8G,YAAYxuI,EAAM,EAAIC,EAAO,IAC9CmtE,GAAQs6D,EAAK8G,WAAW,EAAG,GAAI9G,EAAK8G,WAAW,EAAG,GAEtDH,GAAOzxI,KAAK/D,KAAM6pB,EAAO0qD,GAEzBv0E,KAAKiD,KAAOwyI,EAAMqD,UAtCtB,GAAqOjK,IAAzN14C,EAAQ,wBAAuHA,EAAQ,uBAAyFA,EAAQ,iBAChPs/C,EAAQt/C,EAAQ,WAChBq/C,EAASr/C,EAAQ,WAErBx0D,GAAOD,QAAUx6B,EAoCjBA,EAAUrD,UAAY,GAAI2xI,OAQ1BtuI,EAAUrD,UAAUqtJ,uBAAyB,SAAS9pC,GAClD,GAAI/hG,GAAIrlB,KAAKmH,MACTszB,EAAIz6B,KAAKoH,MACb,OAAOggH,IAAQ3sF,EAAEA,EAAIpV,EAAEA,GAAK,IAOhCne,EAAUrD,UAAUitJ,qBAAuB,WACvC,GAAIzrI,GAAIrlB,KAAKmH,MACTszB,EAAIz6B,KAAKoH,MACbpH,MAAKkwI,eAAiBhuI,KAAKgrB,KAAK7H,EAAEA,EAAIoV,EAAEA,GAAK,EAGnCo0G,GAAKxiI,SACLwiI,EAAKxiI,SACLwiI,EAAKxiI,SACLwiI,EAAKxiI,QAQnBnF,GAAUrD,UAAUgtJ,YAAc,SAAS/oH,EAAKngC,EAAUrB,GACtDwhC,EAAIinG,cAAc/uI,KAAKmzB,SAASxrB,EAASrB,EAAM,IAGnDY,EAAUrD,UAAUo0J,WAAa,WAC7Bj4J,KAAKmuC,KAAOnuC,KAAKmH,MAAQnH,KAAKoH,UAI/BgoI,eAAe,GAAG0qB,WAAW,GAAG5B,UAAU,GAAGjuB,oBAAsB,EAAEC,qBAAuB,IAAI6vB,IAAI,SAAS5jE,EAAQx0D,GASxH,QAAS8zG,GAAMxyI,GAgBXjD,KAAKiD,KAAOA,EAOZjD,KAAKkG,GAAKuvI,EAAM8X,YAOhBvtJ,KAAKkwI,eAAiB,EA+BtBlwI,KAAKg6J,eAAiB,EAOtBh6J,KAAKi6J,cAAiB,EACnBh3J,GACCjD,KAAK8wJ,uBAQT9wJ,KAAKk6J,SAAW,KAOhBl6J,KAAKmuC,KAAO,EAMZnuC,KAAKm6J,QAAS,EAEdn6J,KAAKi4J,aArGG9hE,EAAQ,wBAAuHA,EAAQ,sBAA0Ex0D,GAAOD,QAAU+zG,EAwG9OA,EAAM8X,UAAY,EAMlB9X,EAAM8G,OAAc,EAMpB9G,EAAMuG,SAAc,EAMpBvG,EAAM2F,MAAc,EAMpB3F,EAAM6C,OAAc,EAMpB7C,EAAM4C,KAAc,GAMpB5C,EAAMqD,UAAc,GAMpBrD,EAAM6D,QAAc,GAMpB7D,EAAM4M,YAAc,IAQpB5M,EAAM5xI,UAAUqtJ,uBAAyB,WACrC,KAAM,IAAIpkJ,OAAM,qEAQpB2oI,EAAM5xI,UAAUitJ,qBAAuB,WACnC,KAAM,IAAIhkJ,OAAM,mEAOpB2oI,EAAM5xI,UAAUo0J,WAAa,aAW7BxiB,EAAM5xI,UAAUgtJ,YAAc,eAI3B5mB,oBAAsB,EAAEC,qBAAuB,IAAIkwB,IAAI,SAASjkE,EAAQx0D,GAkB3E,QAAS0zH,GAAS1nI,GACd6nI,EAAOzxJ,KAAK/D,KAAK2tB,EAAQ6nI,EAAO6E,IAChC1sI,EAAUA,MAOV3tB,KAAKs6J,WAAa3sI,EAAQ2sI,YAAc,GAOxCt6J,KAAKwrC,UAAY7d,EAAQ6d,WAAa,MAEtCxrC,KAAKu6J,UAAY,GACjBv6J,KAAKw6J,OAAS,GAAIp2H,GAAMwmH,WAAW5qJ,KAAKu6J,WACxCv6J,KAAKy6J,GAAS,GAAIr2H,GAAMwmH,WAAW5qJ,KAAKu6J,WACxCv6J,KAAK06J,MAAS,GAAIt2H,GAAMwmH,WAAW5qJ,KAAKu6J,WAOxCv6J,KAAK26J,YAAa,EAQlB36J,KAAK46J,mBAAqB,EAM1B56J,KAAK66J,eAAiB,EAI1B,QAASC,GAAal1J,GAElB,IADA,GAAI6+B,GAAI7+B,EAAMvB,OACRogC,KACF7+B,EAAM6+B,GAAK,EAlEnB,GAAoOoqG,IAAxN14C,EAAQ,wBAAuHA,EAAQ,uBAAwFA,EAAQ,iBAC/Oq/D,EAASr/D,EAAQ,YACjB/xD,EAAQ+xD,EAAQ,kBAChBo/C,EAAmBp/C,EAAQ,gCAE/Bx0D,GAAOD,QAAU2zH,EAwDjBA,EAASxxJ,UAAY,GAAI2xJ,GAezBH,EAASxxJ,UAAUk3J,MAAQ,SAAStgI,EAAG2X,GAEnCpyC,KAAKg7J,eAEL,IAAIC,GAAO,EACPC,EAAUl7J,KAAKs6J,WACfa,EAAkBn7J,KAAK46J,mBACvBlW,EAAY1kJ,KAAK0kJ,UACjB0W,EAAM1W,EAAUrgJ,OAChBg3J,EAAan5J,KAAK+3F,IAAIj6F,KAAKwrC,UAAU4vH,EAAK,GAC1CzqC,EAASv+E,EAAMu+E,OACf2qC,EAAUlpH,EAAMu+E,OAAOtsH,OAGvBs2J,GAFM9rB,EAAK7lG,IACL6lG,EAAKvlI,IACEtJ,KAAK26J,YAClBH,EAASx6J,KAAKw6J,MAIlB,IAFAx6J,KAAK66J,eAAiB,EAEnBO,EACC,IAAI,GAAIj3J,GAAE,EAAGA,IAAIm3J,EAASn3J,IAAI,CAC1B,GAAImB,GAAIqrH,EAAOxsH,EAGfmB,GAAEgrJ,4BAKPkK,EAAOn2J,OAAS+2J,IACfZ,EAASx6J,KAAKw6J,OAAU,GAAIp2H,GAAMwmH,WAAWwQ,EAAMp7J,KAAKu6J,WACxDv6J,KAAKy6J,GAAmB,GAAIr2H,GAAMwmH,WAAWwQ,EAAMp7J,KAAKu6J,WACxDv6J,KAAK06J,MAAmB,GAAIt2H,GAAMwmH,WAAWwQ,EAAMp7J,KAAKu6J,YAE5DO,EAAaN,EAKb,KAAI,GAJAE,GAAQ16J,KAAK06J,MACbD,EAAKz6J,KAAKy6J,GACVD,EAASx6J,KAAKw6J,OAEVr2J,EAAE,EAAGA,IAAIugJ,EAAUrgJ,OAAQF,IAAI,CACnC,GAAIoB,GAAIm/I,EAAUvgJ,IACfoB,EAAEwwD,WAAat7B,GAAKl1B,EAAE04B,eACrB14B,EAAEwwD,SAAWt7B,EACbl1B,EAAEiU,UAENihJ,EAAGt2J,GAASoB,EAAE+kJ,SAAS/kJ,EAAEF,EAAEE,EAAED,EAAEm1B,GAC/BigI,EAAMv2J,GAAMoB,EAAEgnJ,YAAYhnJ,EAAEqzF,SAGhC,GAAUrzF,GAAGg2J,EAAep3J,EAAEU,CAE9B,IAAW,IAARu2J,EAAU,CAET,IAAIj3J,EAAE,EAAGA,IAAIm3J,EAASn3J,IAAI,CACtB,GAAImB,GAAIqrH,EAAOxsH,EAGfmB,GAAE8sJ,0BAGN,GAAG+I,EAAgB,CAEf,IAAIF,EAAK,EAAGA,IAAOE,EAAiBF,IAAO,CAKvC,IAFAM,EAAiB,EAEb12J,EAAE,EAAGA,IAAIu2J,EAAKv2J,IAAI,CAClBU,EAAIm/I,EAAU7/I,EAEd,IAAIunJ,GAAciJ,EAASmG,gBAAgB32J,EAAEU,EAAEA,EAAEqzF,QAAQ6hE,EAAGC,EAAMF,EAAOG,EAAWlgI,EAAEwgI,EACtFM,IAAkBr5J,KAAKirB,IAAIi/H,GAM/B,GAHApsJ,KAAK66J,iBAG+BQ,GAAjCE,EAAeA,EACd,MAOR,IAHAlG,EAASoG,kBAAkB/W,EAAW8V,EAAQ,EAAE//H,GAG5C51B,EAAE,EAAGA,IAAIu2J,EAAKv2J,IAAI,CAClB,GAAI6kI,GAAKgb,EAAU7/I,EACnB,IAAG6kI,YAAc6L,GAAiB,CAE9B,IAAI,GADA5vG,GAAI,EACAqpC,EAAE,EAAGA,IAAI06D,EAAGuJ,iBAAiB5uI,OAAQ2qE,IACzCrpC,GAAK+jG,EAAGuJ,iBAAiBjkE,GAAGloB,UAEhCnhB,IAAK+jG,EAAG2J,oBAAsB3J,EAAGuJ,iBAAiB5uI,OAClDqlI,EAAG+b,SAAY9/G,EACf+jG,EAAG0c,UAAYzgH,IAM3B,IAAIs1H,EAAK,EAAGA,IAAOC,EAASD,IAAO,CAK/B,IAFAM,EAAiB,EAEb12J,EAAE,EAAGA,IAAIu2J,EAAKv2J,IAAI,CAClBU,EAAIm/I,EAAU7/I,EAEd,IAAIunJ,GAAciJ,EAASmG,gBAAgB32J,EAAEU,EAAEA,EAAEqzF,QAAQ6hE,EAAGC,EAAMF,EAAOG,EAAWlgI,EAAEwgI,EACtFM,IAAkBr5J,KAAKirB,IAAIi/H,GAM/B,GAHApsJ,KAAK66J,iBAG+BQ,GAAjCE,EAAeA,EACd,MAKR,IAAIp3J,EAAE,EAAGA,IAAIm3J,EAASn3J,IAClBwsH,EAAOxsH,GAAGkuJ,uBAGdgD,GAASoG,kBAAkB/W,EAAW8V,EAAQ,EAAE//H,KAKxD46H,EAASoG,kBAAoB,SAAS/W,EAAW8V,EAAQkB,GAGrD,IADA,GAAIj3H,GAAIigH,EAAUrgJ,OACZogC,KACFigH,EAAUjgH,GAAGqiB,WAAa0zG,EAAO/1H,GAAKi3H,GAI9CrG,EAASmG,gBAAkB,SAAS32J,EAAE6kI,EAAG8iB,EAAIiO,EAAGC,EAAMF,EAAOG,EAAWprH,GAEpE,GAAI4uB,GAAIs8F,EAAG51J,GACP82J,EAAOjB,EAAM71J,GACb+2J,EAAUpB,EAAO31J,GACjBg3J,EAAWnyB,EAAGqhB,kBAEdtF,EAAW/b,EAAG+b,SACdW,EAAW1c,EAAG0c,QAEfuU,KACCx8F,EAAI,EAGR,IAAIiuF,GAAcuP,GAASx9F,EAAI09F,EAAWrP,EAAMoP,GAG5CE,EAA2BF,EAAUxP,CASzC,OAR8BhG,GAAS72G,EAApCusH,EACC1P,EAAchG,EAAS72G,EAAKqsH,EACtBE,EAA2BrW,EAASl2G,IAC1C68G,EAAc3G,EAASl2G,EAAKqsH,GAEhCpB,EAAO31J,IAAMunJ,EACb1iB,EAAGyiB,aAAaC,GAETA,KAGR3I,gCAAgC,GAAGrU,eAAe,GAAGC,iBAAiB,GAAG0sB,WAAW,GAAG9xB,oBAAsB,EAAEC,qBAAuB,IAAI8xB,IAAI,SAAS7lE,EAAQx0D,GAYlK,QAAS6zH,GAAO7nI,EAAQ1qB,GACpB0qB,EAAUA,MAEVq/H,EAAajpJ,KAAK/D,MAElBA,KAAKiD,KAAOA,EAQZjD,KAAK0kJ,aAOL1kJ,KAAKi8J,qBAAuBtuI,EAAQsuI,uBAAwB,EA/BhE,GACIjP,IADQ72D,EAAQ,wBAAuHA,EAAQ,uBAAuFA,EAAQ,kBAC/NA,EAAQ,0BAE3Bx0D,GAAOD,QAAU8zH,EA8BjBA,EAAO3xJ,UAAY,GAAImpJ,GAQvBwI,EAAO3xJ,UAAUk3J,MAAQ,WACrB,KAAM,IAAIjuJ,OAAM,qDAGpB,IAAIovJ,IAAavrC,UAQjB6kC,GAAO3xJ,UAAUs4J,YAAc,SAAS5sH,EAAG6sH,GAEvCp8J,KAAKq8J,qBAEFD,EAAO1X,UAAUrgJ,SAEhBrE,KAAKs8J,aAAaF,EAAO1X,WACzBwX,EAAUvrC,OAAOtsH,OAAS,EAC1B+3J,EAAOG,UAAUL,EAAUvrC,QAGxBurC,EAAUvrC,OAAOtsH,QAChBrE,KAAK+6J,MAAMxrH,EAAG2sH,KAS1B1G,EAAO3xJ,UAAUm3J,cAAgB,WAC1Bh7J,KAAKi8J,sBACJj8J,KAAK0kJ,UAAU7gG,KAAK7jD,KAAKi8J,uBAUjCzG,EAAO3xJ,UAAU24J,YAAc,SAAS9yB,GACjCA,EAAG9yE,SACF52D,KAAK0kJ,UAAUpgJ,KAAKolI,IAU5B8rB,EAAO3xJ,UAAUy4J,aAAe,SAAStlB,GAErC,IAAI,GAAI7yI,GAAE,EAAG26D,EAAEk4E,EAAI3yI,OAAQF,IAAI26D,EAAG36D,IAAI,CAClC,GAAIulI,GAAKsN,EAAI7yI,EACVulI,GAAG9yE,SACF52D,KAAK0kJ,UAAUpgJ,KAAKolI,KAWhC8rB,EAAO3xJ,UAAU44J,eAAiB,SAAS/yB,GACvC,GAAIvlI,GAAInE,KAAK0kJ,UAAUrhJ,QAAQqmI,EACtB,MAANvlI,GACCnE,KAAK0kJ,UAAU73I,OAAO1I,EAAE,IAShCqxJ,EAAO3xJ,UAAUw4J,mBAAqB,WAClCr8J,KAAK0kJ,UAAUrgJ,OAAO,GAG1BmxJ,EAAO6E,GAAK,EACZ7E,EAAOkH,OAAS,IAEbnJ,yBAAyB,GAAGlkB,iBAAiB,GAAGpF,oBAAsB,EAAEC,qBAAuB,IAAIyyB,IAAI,SAASxmE,EAAQx0D,GAW3H,QAASi7H,KACL58J,KAAK68J,2BAA6B,GAAIzoB,GACtCp0I,KAAK88J,8BAAgC,GAAI1oB,GACzCp0I,KAAK+8J,cACL/8J,KAAKg9J,QAAU,GAAI5oB,GACnBp0I,KAAKi9J,aAyKT,QAASC,GAAoBrtB,EAAO0H,EAAQzH,EAAO0H,GAI/Cx3I,KAAKu3I,OAASA,EAIdv3I,KAAKw3I,OAASA,EAIdx3I,KAAK6vI,MAAQA,EAIb7vI,KAAK8vI,MAAQA,EAxMjB,CAAA,GAAuOsE,IAA3Nj+C,EAAQ,wBAAuHA,EAAQ,uBAAsGA,EAAQ,qBACrPA,GAAQ,WAEpBx0D,EAAOD,QAAUk7H,EAmBjBA,EAAc/4J,UAAUw/F,KAAO,WAM3B,IALA,GAAI7+D,GAAOxkC,KAAK68J,2BACZn4H,EAAU1kC,KAAK88J,8BAGfr4H,EAAID,EAAK+nF,KAAKloH,OACZogC,KAAI,CACN,GAAI9hB,GAAM6hB,EAAK+nF,KAAK9nF,GAChB04H,EAAa34H,EAAK44H,SAASz6I,GAC3B06I,EAAgB34H,EAAQ04H,SAASz6I,EAClCw6I,KAAeE,GAEdr9J,KAAK+8J,WAAWz4J,KAAK64J,GAK7B34H,EAAKnc,QAGLmc,EAAKgC,KAAK9B,GAGVA,EAAQrc,SAUZu0I,EAAc/4J,UAAUy5J,eAAiB,SAASztB,EAAO0H,EAAQzH,EAAO0H,GACpE,GACI9yG,IADO1kC,KAAK68J,2BACF78J,KAAK88J,8BAGnB,KAAIp4H,EAAQr7B,IAAIkuI,EAAOrxI,GAAIsxI,EAAOtxI,IAAI,CAElC,GAAI0Q,EACD5W,MAAK+8J,WAAW14J,QACfuS,EAAO5W,KAAK+8J,WAAWjkJ,MACvBlC,EAAKtN,IAAIumI,EAAO0H,EAAQzH,EAAO0H,IAE/B5gI,EAAO,GAAIsmJ,GAAoBrtB,EAAO0H,EAAQzH,EAAO0H,GAGzD9yG,EAAQp7B,IAAIiuI,EAAOrxI,GAAIsxI,EAAOtxI,GAAI0Q,KAI1CgmJ,EAAc/4J,UAAU05J,eAAiB,SAAStmJ,GAC9C,MAAOjX,MAAKw9J,QAAQx9J,KAAK68J,2BAA4B78J,KAAK88J,8BAA+B7lJ,IAG7F2lJ,EAAc/4J,UAAU45J,eAAiB,SAASxmJ,GAC9C,MAAOjX,MAAKw9J,QAAQx9J,KAAK88J,8BAA+B98J,KAAK68J,2BAA4B5lJ,IAU7F2lJ,EAAc/4J,UAAUuvJ,qBAAuB,SAASvjB,EAAOC,GAG3D,IAFA,GAAIprG,GAAU1kC,KAAK88J,8BACfr4H,EAAIC,EAAQ6nF,KAAKloH,OACfogC,KAAI,CACN,GAAI9hB,GAAM+hB,EAAQ6nF,KAAK9nF,GACnB7tB,EAAO8tB,EAAQ9tB,KAAK+L,EACxB,IAAI/L,EAAKi5H,QAAUA,GAASj5H,EAAKk5H,QAAUA,GAAUl5H,EAAKi5H,QAAUC,GAASl5H,EAAKk5H,QAAUD,EACxF,OAAO,EAGf,OAAO,GAGX+sB,EAAc/4J,UAAU25J,QAAU,SAASE,EAAOC,EAAO1mJ,GACrD,GAAIA,GAASA,MACTutB,EAAOk5H,EACPh5H,EAAUi5H,CAEd1mJ,GAAO5S,OAAS,CAGhB,KADA,GAAIogC,GAAIC,EAAQ6nF,KAAKloH,OACfogC,KAAI,CACN,GAAI9hB,GAAM+hB,EAAQ6nF,KAAK9nF,GACnB7tB,EAAO8tB,EAAQ9tB,KAAK+L,EAExB,KAAI/L,EACA,KAAM,IAAI9J,OAAM,OAAO6V,EAAI,gBAG/B,IAAIi7I,GAAWp5H,EAAK5tB,KAAK+L,EACrBi7I,IAEA3mJ,EAAO3S,KAAKsS,GAIpB,MAAOK,IAGX2lJ,EAAc/4J,UAAUg6J,aAAe,SAAStmB,EAAQC,GACpD,GAAIsmB,GAAgB,EAAVvmB,EAAOrxI,GACb63J,EAAgB,EAAVvmB,EAAOtxI,GACbs+B,EAAOxkC,KAAK68J,2BACZn4H,EAAU1kC,KAAK88J,6BAEnB,QAAUt4H,EAAKn7B,IAAIy0J,EAAKC,MAAUr5H,EAAQr7B,IAAIy0J,EAAKC,IAGvDnB,EAAc/4J,UAAUm6J,mBAAqB,SAAS/mJ,GAClDjX,KAAKi9J,UAAU54J,OAAS,CACxB,IAAI8qI,GAAWnvI,KAAKu9J,eAAev9J,KAAKi9J,UACxC,OAAOj9J,MAAKi+J,YAAY9uB,EAAUl4H,IAGtC2lJ,EAAc/4J,UAAUq6J,mBAAqB,SAASjnJ,GAClDjX,KAAKi9J,UAAU54J,OAAS,CACxB,IAAI8qI,GAAWnvI,KAAKy9J,eAAez9J,KAAKi9J,UACxC,OAAOj9J,MAAKi+J,YAAY9uB,EAAUl4H,IAGtC2lJ,EAAc/4J,UAAUo6J,YAAc,SAAS9uB,EAAUl4H,GACrDA,EAASA,KAKT,KAJA,GAAIknJ,GAAcn+J,KAAKg9J,QAEnBv4H,EAAI0qG,EAAS9qI,OAEXogC,KAAI,CACN,GAAI7tB,GAAOu4H,EAAS1qG,EAGpB05H,GAAY70J,IAAkB,EAAdsN,EAAKi5H,MAAM3pI,GAAoB,EAAd0Q,EAAKk5H,MAAM5pI,GAAM0Q,GAItD,IADA6tB,EAAI05H,EAAY5xC,KAAKloH,OACfogC,KAAI,CACN,GAAI7tB,GAAOunJ,EAAYf,SAASe,EAAY5xC,KAAK9nF,GAC9C7tB,IACCK,EAAO3S,KAAKsS,EAAKi5H,MAAOj5H,EAAKk5H,OAMrC,MAFAquB,GAAY91I,QAELpR,GAuCXimJ,EAAoBr5J,UAAUyF,IAAM,SAASumI,EAAO0H,EAAQzH,EAAO0H,GAC/D0lB,EAAoBn5J,KAAK/D,KAAM6vI,EAAO0H,EAAQzH,EAAO0H,MAGtD4mB,oBAAoB,GAAGC,UAAU,GAAGp0B,oBAAsB,EAAEC,qBAAuB,IAAIo0B,IAAI,SAASnoE,EAAQx0D,GAS/G,QAASyyG,KAOLp0I,KAAK4W,QAML5W,KAAKusH,QArBT,GAAyOnoF,IAA7N+xD,EAAQ,wBAAuHA,EAAQ,uBAA8FA,EAAQ,WAEzPx0D,GAAOD,QAAU0yG,EA6BjBA,EAAgBvwI,UAAU06J,OAAS,SAASznB,EAAKC,GAI7C,MAHAD,GAAU,EAAJA,EACNC,EAAU,EAAJA,GAEI,EAAJD,MAAgB,EAAJC,GACP,GAMuB,IAFrB,EAAJD,IAAc,EAAJC,GACdD,GAAO,GAAa,MAANC,EACdA,GAAO,GAAa,MAAND,IASvB1C,EAAgBvwI,UAAUu5J,SAAW,SAASz6I,GAE1C,MADAA,GAAU,EAAJA,EACC3iB,KAAK4W,KAAK+L,IASrByxH,EAAgBvwI,UAAUwF,IAAM,SAASlF,EAAGU,GACxC,MAAO7E,MAAK4W,KAAK5W,KAAKu+J,OAAOp6J,EAAGU,KAUpCuvI,EAAgBvwI,UAAUyF,IAAM,SAASnF,EAAGU,EAAG0E,GAC3C,IAAIA,EACA,KAAM,IAAIuD,OAAM,WAGpB,IAAI6V,GAAM3iB,KAAKu+J,OAAOp6J,EAAGU,EASzB,OANI7E,MAAK4W,KAAK+L,IACV3iB,KAAKusH,KAAKjoH,KAAKqe,GAGnB3iB,KAAK4W,KAAK+L,GAAOpZ,EAEVoZ,GAOXyxH,EAAgBvwI,UAAUwkB,MAAQ,WAK9B,IAJA,GAAIzR,GAAO5W,KAAK4W,KACZ21G,EAAOvsH,KAAKusH,KAEZ9nF,EAAI8nF,EAAKloH,OACPogC,WACK7tB,GAAK21G,EAAK9nF,GAGrB8nF,GAAKloH,OAAS,GAQlB+vI,EAAgBvwI,UAAU2iC,KAAO,SAASg4H,GACtCx+J,KAAKqoB,QACL+b,EAAMizG,YAAYr3I,KAAKusH,KAAMiyC,EAAKjyC,KAElC,KADA,GAAI9nF,GAAI+5H,EAAKjyC,KAAKloH,OACZogC,KAAI,CACN,GAAI9hB,GAAM67I,EAAKjyC,KAAK9nF,EACpBzkC,MAAK4W,KAAK+L,GAAO67I,EAAK5nJ,KAAK+L,OAIhC07I,UAAU,GAAGp0B,oBAAsB,EAAEC,qBAAuB,IAAIu0B,IAAI,SAAStoE,EAAQx0D,GAQxF,QAASyC,MAPG+xD,EAAQ,wBAAuHA,EAAQ,sBAAwEx0D,GAAOD,QAAU0C,EAgB5OA,EAAMizG,YAAc,SAAShyI,EAAEC,GAC3B,GAAIA,EAAEjB,OAAS,KACXgB,EAAEf,KAAKb,MAAM4B,EAAGC,OAEhB,KAAK,GAAInB,GAAI,EAAGm3B,EAAMh2B,EAAEjB,OAAQF,IAAMm3B,IAAOn3B,EACzCkB,EAAEf,KAAKgB,EAAEnB,KAarBigC,EAAMv3B,OAAS,SAASjH,EAAM+G,EAAM+xJ,GAChCA,EAAUA,GAAW,CACrB,KAAK,GAAIv6J,GAAEwI,EAAO2uB,EAAI11B,EAAMvB,OAAOq6J,EAAapjI,EAAJn3B,EAASA,IACjDyB,EAAMzB,GAAKyB,EAAMzB,EAAIu6J,EAEzB94J,GAAMvB,OAASi3B,GASnB8I,EAAMwmH,WAAalnJ,OAAO9B,cAAgBE,MAS1CsiC,EAAMmC,OAAS,SAASlhC,EAAEC,GACtB,IAAI,GAAIqd,KAAOrd,GACXD,EAAEsd,GAAOrd,EAAEqd,IAWnByhB,EAAM4sG,SAAW,SAASrjH,EAASqjH,GAC/BrjH,EAAUA,KACV,KAAI,GAAIhL,KAAOquH,GACNruH,IAAOgL,KACRA,EAAQhL,GAAOquH,EAASruH,GAGhC,OAAOgL,MAGRs8G,oBAAsB,EAAEC,qBAAuB,IAAIy0B,IAAI,SAASxoE,EAAQx0D,GAU3E,QAASi9H,KAOL5+J,KAAK0kJ,aAOL1kJ,KAAK2wH,UAvBT,GAAgOvR,IAApNjpB,EAAQ,wBAAuHA,EAAQ,uBAAoFA,EAAQ,mBAE/Ox0D,GAAOD,QAAUk9H,EA4BjBA,EAAO/6J,UAAUwkB,MAAQ,WACrBroB,KAAK0kJ,UAAUrgJ,OAASrE,KAAK2wH,OAAOtsH,OAAS,EAGjD,IAAIw6J,KAOJD,GAAO/6J,UAAU04J,UAAY,SAAStlJ,GAClC,GAAI05G,GAAS15G,MACT+/H,EAAMh3I,KAAK0kJ,SACfma,GAAQx6J,OAAS,CACjB,KAAI,GAAIF,GAAE,EAAGA,IAAI6yI,EAAI3yI,OAAQF,IAAI,CAC7B,GAAIulI,GAAKsN,EAAI7yI,EACqB,MAA/B06J,EAAQx7J,QAAQqmI,EAAGmG,MAAM3pI,MACxByqH,EAAOrsH,KAAKolI,EAAGmG,OACfgvB,EAAQv6J,KAAKolI,EAAGmG,MAAM3pI,KAEQ,KAA/B24J,EAAQx7J,QAAQqmI,EAAGoG,MAAM5pI,MACxByqH,EAAOrsH,KAAKolI,EAAGoG,OACf+uB,EAAQv6J,KAAKolI,EAAGoG,MAAM5pI,KAG9B,MAAOyqH,IAQXiuC,EAAO/6J,UAAUgsJ,aAAe,WAC5B,IAAI,GAAI1rJ,GAAE,EAAGA,EAAEnE,KAAK2wH,OAAOtsH,OAAQF,IAAI,CACnC,GAAImB,GAAItF,KAAK2wH,OAAOxsH,EACpB,IAAGmB,EAAErC,OAASm8G,EAAKuwC,UAAYrqJ,EAAEuqJ,aAC7B,OAAO,EAGf,OAAO,GAOX+O,EAAO/6J,UAAU4uJ,MAAQ,WACrB,IAAI,GAAItuJ,GAAE,EAAGA,EAAEnE,KAAK2wH,OAAOtsH,OAAQF,IAAI,CACnC,GAAImB,GAAItF,KAAK2wH,OAAOxsH,EACpBmB,GAAEmtJ,QAEN,OAAO,KAGR5hB,kBAAkB,GAAG5G,oBAAsB,EAAEC,qBAAuB,IAAI40B,IAAI,SAAS3oE,EAAQx0D,GAgBhG,QAASo9H,KAGL/+J,KAAKg/J,aACLh/J,KAAKi/J,eAMLj/J,KAAK0kJ,aAML1kJ,KAAKk/J,WAMLl/J,KAAK++F,SAOL/+F,KAAK4oI,SA5CT,GACIg2B,IADQzoE,EAAQ,wBAAuHA,EAAQ,uBAA2FA,EAAQ,gBACzOA,EAAQ,aACjBgpE,EAAahpE,EAAQ,gBACrBipB,EAAOjpB,EAAQ,kBAEnBx0D,GAAOD,QAAUq9H,EAiDjBA,EAAcK,iBAAmB,SAASrgE,GAEtC,IAAI,GADAsgE,GAAStgE,EAAM16F,OACXF,EAAE,EAAGA,IAAIk7J,EAAQl7J,IAAI,CACzB,GAAI8tF,GAAO8M,EAAM56F,EACjB,KAAI8tF,EAAKqtE,SAAWrtE,EAAK39B,KAAKrxD,OAASm8G,EAAKuwC,QACxC,MAAO19D,GAGf,OAAO,GAUX8sE,EAAcl7J,UAAU07J,MAAQ,SAAUttE,EAAKutE,EAAIxoB,GAC/CwoB,EAAIl7J,KAAK2tF,EAAK39B,KAEd,KAAI,GADAmrG,GAAOxtE,EAAKyyD,UAAUrgJ,OAClBF,EAAE,EAAGA,IAAIs7J,EAAMt7J,IAAI,CACvB,GAAIulI,GAAKz3C,EAAKyyD,UAAUvgJ,EACD,MAApB6yI,EAAI3zI,QAAQqmI,IACXsN,EAAI1yI,KAAKolI,KAYrBq1B,EAAcl7J,UAAU67J,IAAM,SAAS3/J,EAAKy/J,EAAIxoB,GAG5C,GAAIpO,GAAQ5oI,KAAK4oI,KASjB,KARAA,EAAMvkI,OAAS,EAGfukI,EAAMtkI,KAAKvE,GACXA,EAAKu/J,SAAU,EACft/J,KAAKu/J,MAAMx/J,EAAKy/J,EAAIxoB,GAGdpO,EAAMvkI,QAOR,IAJA,GAGIoI,GAHAwlF,EAAO22C,EAAM9vH,MAIVrM,EAAQsyJ,EAAcK,iBAAiBntE,EAAK0tE,YAC/ClzJ,EAAM6yJ,SAAU,EAChBt/J,KAAKu/J,MAAM9yJ,EAAM+yJ,EAAIxoB,GAGlBvqI,EAAM6nD,KAAKrxD,OAASm8G,EAAKuwC,SACxB/mB,EAAMtkI,KAAKmI,IAY3BsyJ,EAAcl7J,UAAU8Q,MAAQ,SAASy9B,GAMrC,IALA,GAAIu+E,GAASv+E,EAAMu+E,OACf5xB,EAAQ/+F,KAAK++F,MACb2lD,EAAY1kJ,KAAK0kJ,UAGf3lD,EAAM16F,QACRrE,KAAKg/J,UAAU16J,KAAKy6F,EAAMjmF,MAI9B,KAAI,GAAI3U,GAAE,EAAGA,IAAIwsH,EAAOtsH,OAAQF,IAC5B,GAAGnE,KAAKg/J,UAAU36J,OAAO,CACrB,GAAI4tF,GAAOjyF,KAAKg/J,UAAUlmJ,KAC1Bm5E,GAAK5pE,QACL4pE,EAAK39B,KAAOq8D,EAAOxsH,GACnB46F,EAAMz6F,KAAK2tF,OAEX8M,GAAMz6F,KAAK,GAAI66J,GAAWxuC,EAAOxsH,IAKzC,KAAI,GAAI6qE,GAAE,EAAGA,IAAI01E,EAAUrgJ,OAAQ2qE,IAAI,CACnC,GAAI06D,GAAGgb,EAAU11E,GACb7qE,EAAEwsH,EAAOttH,QAAQqmI,EAAGmG,OACpBhrI,EAAE8rH,EAAOttH,QAAQqmI,EAAGoG,OACpB8vB,EAAG7gE,EAAM56F,GACT07J,EAAG9gE,EAAMl6F,EACb+6J,GAAGD,UAAUr7J,KAAKu7J,GAClBA,EAAGF,UAAUr7J,KAAKs7J,GAClBA,EAAGlb,UAAUpgJ,KAAKolI,GAClBm2B,EAAGnb,UAAUpgJ,KAAKolI,GAKtB,IADA,GAAIw1B,GAAUl/J,KAAKk/J,QACbA,EAAQ76J,QAAO,CACjB,GAAI+3J,GAAS8C,EAAQpmJ,KACrBsjJ,GAAO/zI,QACProB,KAAKi/J,YAAY36J,KAAK83J,GAK1B,IADA,GAAI3vJ,GACGA,EAAQsyJ,EAAcK,iBAAiBrgE,IAAQ,CAGlD,GAAIq9D,GAASp8J,KAAKi/J,YAAY56J,OAASrE,KAAKi/J,YAAYnmJ,MAAQ,GAAI8lJ,EAGpE5+J,MAAK0/J,IAAIjzJ,EAAO2vJ,EAAOzrC,OAAQyrC,EAAO1X,WAEtCwa,EAAQ56J,KAAK83J,GAGjB,MAAO8C,MAGR9vB,eAAe,GAAGyB,kBAAkB,GAAGivB,WAAW,GAAGC,eAAe,GAAG91B,oBAAsB,EAAEC,qBAAuB,IAAI81B,IAAI,SAAS7pE,EAAQx0D,GASlJ,QAASw9H,GAAW7qG,GAMhBt0D,KAAKs0D,KAAOA,EAMZt0D,KAAK2/J,aAML3/J,KAAK0kJ,aAOL1kJ,KAAKs/J,SAAU,EAjCPnpE,EAAQ,wBAAuHA,EAAQ,sBAA6Ex0D,GAAOD,QAAUy9H,EAwCjPA,EAAWt7J,UAAUwkB,MAAQ,WACzBroB,KAAK0kJ,UAAUrgJ,OAAS,EACxBrE,KAAK2/J,UAAUt7J,OAAS,EACxBrE,KAAKs/J,SAAU,EACft/J,KAAKs0D,KAAO,QAGb21E,oBAAsB,EAAEC,qBAAuB,IAAI+1B,IAAI,SAAS9pE,EAAQx0D,GAsE3E,QAASsjB,GAAMt3B,GACXq/H,EAAavpJ,MAAMzD,MAEnB2tB,EAAUA,MAQV3tB,KAAKkgK,WAMLlgK,KAAK2wH,UAOL3wH,KAAKmgK,8BAMLngK,KAAKogK,OAASzyI,EAAQyyI,QAAU,GAAI/K,GAQpCr1J,KAAKqgK,YAAc,GAAIrtB,GAAYhzI,MAMnCA,KAAKsgK,cAAgB,GAAIvB,GAQzB/+J,KAAKgjH,QAAU6rB,EAAK8G,WAAW,EAAG,OAC/BhoH,EAAQq1F,SACP6rB,EAAKroG,KAAKxmC,KAAKgjH,QAASr1F,EAAQq1F,SAOpChjH,KAAKugK,gBAAkB1xB,EAAKxqI,OAAOrE,KAAKgjH,UAAY,GAMpDhjH,KAAKwgK,kCAAmC,EAMxCxgK,KAAKygK,iCAAkC,EAQvCzgK,KAAK0gK,YAAc/yI,EAAQ+yI,cAAe,EAQ1C1gK,KAAK2gK,aAAe,EAQpB3gK,KAAK4gK,WAAajzI,EAAQizI,YAAc,GAAI9c,GAC5C9jJ,KAAK4gK,WAAWlxB,SAAS1vI,MAQzBA,KAAK6gK,eAML7gK,KAAK8gK,gBAAkB,GAAIxT,GAM3BttJ,KAAK+gK,uBAAyB,GAAI5T,GAAgBntJ,KAAK8gK,gBAAgB9gK,KAAK8gK,iBAO5E9gK,KAAKghK,aAAe,EAAE,GAOtBhhK,KAAKihK,mBAAoB,EAOzBjhK,KAAKsyJ,cAAe,EAOpBtyJ,KAAKkhK,cAAe,EAOpBlhK,KAAKmhK,kBAAmB,EAOxBnhK,KAAKohK,oBAOLphK,KAAKk0C,KAAO,EAMZl0C,KAAKmzD,UAAW,EAOhBnzD,KAAKqhK,qBAELrhK,KAAKshK,cAAgB,EAMrBthK,KAAKuhK,YAA4C,mBAAvB5zI,GAAmB,cAAoBA,EAAQ4zI,aAAc,EAOvFvhK,KAAKwhK,iBAAkB,EAGvBxhK,KAAKyhK,qBAAuB,EAC5BzhK,KAAK0hK,eAAiB,EAMtB1hK,KAAK2hK,eACD1+J,KAAO,YAQXjD,KAAK4hK,cACD3+J,KAAO,UACPqxD,KAAO,MAQXt0D,KAAK6hK,iBACD5+J,KAAO,aACPqxD,KAAO,MAQXt0D,KAAK8hK,gBACD7+J,KAAO,YACP8+J,OAAS,MASb/hK,KAAKgiK,aACD/+J,KAAM,SACN4sI,MAAQ,KACRC,MAAQ,KACRyH,OAAS,KACTC,OAAS,KACTyqB,gBAAkB,MAUtBjiK,KAAKkiK,qBACDj/J,KAAK,iBACLk/J,MAAM,MAUVniK,KAAKoiK,UAAYn9G,EAAMo9G,YAWvBriK,KAAKsiK,mBACDr/J,KAAK,eACLs0I,OAAS,KACTC,OAAS,KACT3H,MAAQ,KACRC,MAAQ,KACRmD,qBAYJjzI,KAAKuiK,iBACDt/J,KAAK,aACLs0I,OAAS,KACTC,OAAS,KACT3H,MAAQ,KACRC,MAAQ,MASZ9vI,KAAKwiK,eACDv/J,KAAK,WACLgwI,iBAAiB,KACjBC,kBAAkB,MAItBlzI,KAAK68J,4BAA+BtwC,SACpCvsH,KAAK88J,+BAAkCvwC,SAEvCvsH,KAAKmzJ,cAAgB,GAAIyJ,GA3Y7B,CAAA,GAGKvH,IAHOl/D,EAAQ,wBAAuHA,EAAQ,uBAGnIA,EAAQ,uBAGnB04C,GAFS14C,EAAQ,oBACCA,EAAQ,gCACnBA,EAAQ,iBACfnvD,EAASmvD,EAAQ,oBAEjBq/C,GADYr/C,EAAQ,uBACXA,EAAQ,qBAEjBo/D,GADOp/D,EAAQ,kBACPA,EAAQ,oBAChBi/D,EAAUj/D,EAAQ,qBAClBhH,EAAWgH,EAAQ,sBACnB62D,EAAe72D,EAAQ,0BACvBipB,EAAOjpB,EAAQ,mBAGfm3D,GAFQn3D,EAAQ,mBACDA,EAAQ,2BACZA,EAAQ,yBACnBg3D,EAAkBh3D,EAAQ,+BAS1B2tD,GARqB3tD,EAAQ,qCAChBA,EAAQ,6BACJA,EAAQ,iCACJA,EAAQ,qCACPA,EAAQ,sCACbA,EAAQ,iCACnBA,EAAQ,sBACDA,EAAQ,2BACLA,EAAQ,+BACxB68C,EAAc78C,EAAQ,4BACtB/xD,EAAQ+xD,EAAQ,kBAChBymE,EAAgBzmE,EAAQ,0BACxB4oE,EAAgB5oE,EAAQ,kBACLA,GAAQ,+BAOhC,GALAx0D,EAAOD,QAAUujB,EAES,mBAAhBw9G,eACNA,iBAEAA,YAAYjlJ,IAAI,CAChB,GAAIklJ,GAAYnoJ,KAAKiD,KACjBilJ,aAAYE,QAAUF,YAAYE,OAAOC,kBACzCF,EAAYD,YAAYE,OAAOC,iBAEnCH,YAAYjlJ,IAAM,WACd,MAAOjD,MAAKiD,MAAQklJ,GA+V5Bz9G,EAAMphD,UAAY,GAAIsF,QAAO6jJ,EAAanpJ,WAO1CohD,EAAMo9G,YAAc,EAOpBp9G,EAAM49G,cAAgB,EAOtB59G,EAAM69G,gBAAkB,EAQxB79G,EAAMphD,UAAUk/J,cAAgB,SAASx9J,GACrCvF,KAAK6gK,YAAYv8J,KAAKiB,IAQ1B0/C,EAAMphD,UAAUm/J,mBAAqB,SAASC,GAC1CjjK,KAAKohK,iBAAiB98J,KAAK2+J,IAS/Bh+G,EAAMphD,UAAUq/J,sBAAwB,SAASxR,GAC7C,GAAI36I,GAAM/W,KAAKohK,iBAAiB/9J,QAAQquJ,EAC/B,MAAN36I,GACCqtB,EAAMv3B,OAAO7M,KAAKohK,iBAAiBrqJ,EAAI,IAY/CkuC,EAAMphD,UAAUs/J,mBAAqB,SAAS/V,EAAUC,GAEpD,IAAI,GADA+V,GAAQpjK,KAAKohK,iBACTj9J,EAAE,EAAG26D,EAAEskG,EAAM/+J,OAAQF,IAAI26D,EAAG36D,IAAI,CACpC,GAAIutJ,GAAK0R,EAAMj/J,EACf,IAAKutJ,EAAGtE,UAAUlnJ,KAAOknJ,EAAUlnJ,IAAQwrJ,EAAGrE,UAAUnnJ,KAAOmnJ,EAAUnnJ,IACpEwrJ,EAAGtE,UAAUlnJ,KAAOmnJ,EAAUnnJ,IAAQwrJ,EAAGrE,UAAUnnJ,KAAOknJ,EAAUlnJ,GACrE,MAAOwrJ,GAGf,OAAO,GASXzsG,EAAMphD,UAAUw/J,iBAAmB,SAAS99J,GACxC,GAAIwR,GAAM/W,KAAK6gK,YAAYx9J,QAAQkC,EAC1B,MAANwR,GACCqtB,EAAMv3B,OAAO7M,KAAK6gK,YAAY9pJ,EAAI,GAI1C,IAMIusJ,IANSz0B,EAAKxiI,SACDwiI,EAAKxiI,SACTwiI,EAAKxiI,SACLwiI,EAAKxiI,SACAwiI,EAAKxiI,SACLwiI,EAAKxiI,SACTwiI,EAAKxiI,UACfk3J,EAAM10B,EAAK8G,WAAW,EAAE,GACxB6tB,EAAM30B,EAAK8G,WAAW,EAAE,GAExB8tB,GADO50B,EAAK8G,WAAW,EAAE,GACZ9G,EAAK8G,WAAW,EAAE,GAmBnC1wF,GAAMphD,UAAU81B,KAAO,SAAS4V,EAAGm0H,EAAoBC,GAInD,GAHAA,EAAcA,GAAe,GAC7BD,EAAsBA,GAAuB,EAElB,IAAxBA,EAEC1jK,KAAK4jK,aAAar0H,GAGlBvvC,KAAKk0C,MAAQ3E,MAEV,CAGH,GAAIs0H,GAAgB3hK,KAAKmoC,OAAQrqC,KAAKk0C,KAAKwvH,GAAuBn0H,GAAMrtC,KAAKmoC,MAAMrqC,KAAKk0C,KAAO3E,EAC/Fs0H,GAAgB3hK,KAAK23B,IAAIgqI,EAAcF,EAIvC,KAAI,GADAG,GAAKrB,YAAYjlJ,MACbrZ,EAAE,EAAGA,IAAI0/J,IACb7jK,KAAK4jK,aAAar0H,KACfkzH,YAAYjlJ,MAAQsmJ,EAAQ,IAAHv0H,IAFAprC,KAShCnE,KAAKk0C,MAAQwvH,CAMb,KAAI,GAHAjpI,GAAIz6B,KAAKk0C,KAAO3E,EAChBw0H,EAAWtpI,EAAE8U,EAET1qC,EAAE,EAAGA,IAAI7E,KAAK2wH,OAAOtsH,OAAQQ,IAAI,CACrC,GAAIS,GAAItF,KAAK2wH,OAAO9rH,EACjBS,GAAErC,OAASm8G,EAAKmxB,QAAUjrI,EAAEmrI,aAAerxB,EAAKsxB,UAE/C7B,EAAKkB,IAAI0zB,EAAYn+J,EAAEqC,SAAUrC,EAAEiqJ,kBACnC1gB,EAAKzoI,MAAMq9J,EAAYA,EAAYM,GACnCl1B,EAAK7lG,IAAI1jC,EAAE+pJ,qBAAsB/pJ,EAAEqC,SAAU87J,GAE7Cn+J,EAAEgqJ,kBAAoBhqJ,EAAEgB,OAAShB,EAAEgB,MAAQhB,EAAEkqJ,eAAiBuU,IAG9Dl1B,EAAKroG,KAAKlhC,EAAE+pJ,qBAAsB/pJ,EAAEqC,UACpCrC,EAAEgqJ,kBAAoBhqJ,EAAEgB,SAMxC,IAAI09J,KAQJ/+G,GAAMphD,UAAU+/J,aAAe,SAASr0H,GACpCvvC,KAAKmzD,UAAW,CAEhB,IAWI2wG,GAAIG,EAXJnsD,EAAO93G,KACP0gK,EAAc1gK,KAAK0gK,YACnBwD,EAAWlkK,KAAKkgK,QAAQ77J,OACxB67J,EAAUlgK,KAAKkgK,QACfvvC,EAAS3wH,KAAK2wH,OACd/mG,EAAI5pB,KAAKgjH,QACTo9C,EAASpgK,KAAKogK,OACd9E,EAAUt7J,KAAK2wH,OAAOtsH,OACtBu8J,EAAa5gK,KAAK4gK,WAClBuD,EAAKnkK,KAAKqgK,YACVQ,EAAc7gK,KAAK6gK,YAInBuD,EAAKd,EAELt6H,GADQ6lG,EAAKzoI,MACPyoI,EAAK7lG,KAEXs3H,GADSzxB,EAAKxoI,OACErG,KAAKsgK,cAWzB,IATAtgK,KAAKmzJ,cAAc9vD,OAEnBrjG,KAAKghK,aAAezxH,EAEjBmxH,IACCoD,EAAKrB,YAAYjlJ,OAIlBxd,KAAKwgK,iCAAiC,CACrC,GAAI6D,GAAax1B,EAAKxqI,OAAOrE,KAAKgjH,QACd,KAAfqhD,GAAoBrkK,KAAKygK,kCAE1BzgK,KAAKugK,gBAAkB8D,GAK/B,GAAGrkK,KAAKkhK,aACJ,IAAI,GAAI/8J,GAAE,EAAGA,IAAIm3J,EAASn3J,IAAI,CAC1B,GAAImB,GAAIqrH,EAAOxsH,GACXinJ,EAAK9lJ,EAAE+8C,KACR/8C,GAAErC,OAASm8G,EAAKuwC,SAAWrqJ,EAAEmrI,aAAerxB,EAAKsxB,WAGpD7B,EAAKzoI,MAAMg+J,EAAGx6I,EAAEtkB,EAAE8hH,KAAK9hH,EAAE2qJ,cACzBjnH,EAAIoiH,EAAGA,EAAGgZ,IAKlB,GAAGpkK,KAAKihK,kBACJ,IAAI,GAAI98J,GAAE,EAAGA,IAAI+/J,EAAU//J,IAAI,CAC3B,GAAIqmC,GAAI01H,EAAQ/7J,EAChBqmC,GAAE4mH,aAIV,GAAGpxJ,KAAKsyJ,aACJ,IAAI,GAAInuJ,GAAE,EAAGA,IAAIm3J,EAASn3J,IAAI,CAC1B,GAAImB,GAAIqrH,EAAOxsH,EACZmB,GAAErC,OAASm8G,EAAKuwC,SACfrqJ,EAAEgtJ,aAAa/iH,GAU3B,IAAI,GAJAt4B,GAAS2pJ,EAAWjxB,kBAAkB3vI,MAGtCskK,EAAetkK,KAAKmgK,2BAChBh8J,EAAEmgK,EAAajgK,OAAO,EAAGF,GAAG,EAAGA,GAAG,EACtC,IAAI,GAAIU,GAAEoS,EAAO5S,OAAO,EAAGQ,GAAG,EAAGA,GAAG,GAC3By/J,EAAangK,KAAS8S,EAAOpS,IAAMy/J,EAAangK,EAAE,KAAO8S,EAAOpS,EAAE,IAClEy/J,EAAangK,EAAE,KAAO8S,EAAOpS,IAAMy/J,EAAangK,KAAS8S,EAAOpS,EAAE,KACnEoS,EAAOpK,OAAOhI,EAAE,EAM5B,IAAI0/J,GAAe1D,EAAYx8J,MAC/B,KAAIF,EAAE,EAAGA,IAAIogK,EAAcpgK,IAAI,CAC3B,GAAIoB,GAAIs7J,EAAY18J,EACpB,KAAIoB,EAAEi/I,iBACF,IAAI,GAAI3/I,GAAEoS,EAAO5S,OAAO,EAAGQ,GAAG,EAAGA,GAAG,GAC3BU,EAAEsqI,QAAU54H,EAAOpS,IAAMU,EAAEuqI,QAAU74H,EAAOpS,EAAE,IAC9CU,EAAEuqI,QAAU74H,EAAOpS,IAAMU,EAAEsqI,QAAU54H,EAAOpS,EAAE,KAC/CoS,EAAOpK,OAAOhI,EAAE,GAOhC7E,KAAKkiK,oBAAoBC,MAAQlrJ,EACjCjX,KAAKqc,KAAKrc,KAAKkiK,qBAGfiC,EAAG97I,MAAMroB,KACT,KAAI,GAAImE,GAAE,EAAGqgK,EAASvtJ,EAAO5S,OAAQF,IAAIqgK,EAAUrgK,GAAG,EAKlD,IAAI,GAJAytI,GAAK36H,EAAO9S,GACZouI,EAAKt7H,EAAO9S,EAAE,GAGV6qE,EAAE,EAAGy1F,EAAS7yB,EAAGkd,OAAOzqJ,OAAQ2qE,IAAIy1F,EAAUz1F,IAMlD,IAAI,GALAurE,GAAK3I,EAAGkd,OAAO9/E,GACflqE,EAAK8sI,EAAGmd,aAAa//E,GACrBwrE,EAAK5I,EAAGod,YAAYhgF,GAGhBvqC,EAAE,EAAGigI,EAASnyB,EAAGuc,OAAOzqJ,OAAQogC,IAAIigI,EAAUjgI,IAAI,CACtD,GAAIg2G,GAAKlI,EAAGuc,OAAOrqH,GACfz/B,EAAKutI,EAAGwc,aAAatqH,GACrBi2G,EAAKnI,EAAGyc,YAAYvqH,GAEpBitH,EAAK1xJ,KAAK+gK,sBACd,IAAGxmB,EAAG2f,UAAYzf,EAAGyf,SAAS,CAC1B,GAAIr2D,GAAM7jG,KAAKmjK,mBAAmB5oB,EAAG2f,SAASzf,EAAGyf,SAC9Cr2D,KACC6tD,EAAK7tD,GAIb7jG,KAAK2kK,eAAeR,EAAGvyB,EAAG2I,EAAGz1I,EAAG01I,EAAGjI,EAAGkI,EAAGz1I,EAAG01I,EAAGgX,EAAG1xJ,KAAKugK,iBAMnE,IAAI,GAAIp8J,GAAE,EAAGA,IAAIm3J,EAASn3J,IAAI,CAC1B,GAAImwD,GAAOq8D,EAAOxsH,EACfmwD,GAAK87F,0BACJ97F,EAAKqwF,SACLrwF,EAAK87F,yBAA0B,GAKvC,GAAGpwJ,KAAKm6C,IAAI,cAAc,CACtBn6C,KAAKmzJ,cAAcsK,eAAeuG,EAGlC,KAFA,GAAIroJ,GAAI3b,KAAKuiK,gBACT99H,EAAIu/H,EAAY3/J,OACdogC,KAAI,CACN,GAAI7tB,GAAOotJ,EAAYv/H,EACvB9oB,GAAE47H,OAAS3gI,EAAK2gI,OAChB57H,EAAE67H,OAAS5gI,EAAK4gI,OAChB77H,EAAEk0H,MAAQj5H,EAAKi5H,MACfl0H,EAAEm0H,MAAQl5H,EAAKk5H,MACf9vI,KAAKqc,KAAKV,IAIlB,GAAI6mJ,GAAgBxiK,KAAKwiK,aACzBA,GAAcvvB,iBAAmBkxB,EAAGlxB,iBACpCuvB,EAActvB,kBAAoBixB,EAAGjxB,kBACrClzI,KAAKqc,KAAKmmJ,EAGV,IAAI+B,GAAe1D,EAAYx8J,MAC/B,KAAIF,EAAE,EAAGA,IAAIogK,EAAcpgK,IACvB08J,EAAY18J,GAAGqV,QAGnB,IAAG2qJ,EAAGlxB,iBAAiB5uI,QAAU8/J,EAAGjxB,kBAAkB7uI,QAAUw8J,EAAYx8J,OACxE,GAAGrE,KAAKuhK,YAAY,CAKhB,IAHAjB,EAAc5b,UAAUrgJ,OAAS,EACjC+/B,EAAMizG,YAAYipB,EAAc5b,UAAWyf,EAAGlxB,kBAC9C7uG,EAAMizG,YAAYipB,EAAc5b,UAAWyf,EAAGjxB,mBAC1C/uI,EAAE,EAAGA,IAAIogK,EAAcpgK,IACvBigC,EAAMizG,YAAYipB,EAAc5b,UAAWmc,EAAY18J,GAAGugJ,UAE9D4b,GAAc3rJ,MAAM3U,KAEpB,KAAI,GAAImE,GAAE,EAAGA,IAAIm8J,EAAcpB,QAAQ76J,OAAQF,IAAI,CAC/C,GAAIi4J,GAASkE,EAAcpB,QAAQ/6J,EAChCi4J,GAAO1X,UAAUrgJ,QAChB+7J,EAAOjE,YAAY5sH,EAAG6sH,QAI3B,CAOH,IAJAgE,EAAO9D,aAAa6H,EAAGlxB,kBACvBmtB,EAAO9D,aAAa6H,EAAGjxB,mBAGnB/uI,EAAE,EAAGA,IAAIogK,EAAcpgK,IACvBi8J,EAAO9D,aAAauE,EAAY18J,GAAGugJ,UAGpC1kJ,MAAKmhK,kBACJf,EAAOrF,MAAMxrH,EAAGvvC,MAGpBogK,EAAO/D,qBAKf,IAAI,GAAIl4J,GAAE,EAAGA,IAAIm3J,EAASn3J,IAAI,CAC1B,GAAImwD,GAAOq8D,EAAOxsH,EAEfmwD,GAAKm8E,aAAerxB,EAAKsxB,UAAYp8E,EAAKrxD,OAASm8G,EAAKmxB,QACvDtrF,EAAM2/G,cAActwG,EAAK/kB,GAKjC,IAAI,GAAIprC,GAAE,EAAGA,IAAIm3J,EAASn3J,IACtBwsH,EAAOxsH,GAAGguJ,cASd,IANGuO,IACCuD,EAAKxB,YAAYjlJ,MACjBs6F,EAAK6oD,aAAesD,EAAGH,GAIxB9jK,KAAKwhK,iBAAmBxhK,KAAKm6C,IAAI,UAEhC,IAAI,GADA0uF,GAAK7oI,KAAKgiK,YACN79J,EAAE,EAAGA,IAAIggK,EAAGlxB,iBAAiB5uI,OAAQF,IAAI,CAC7C,GAAIulI,IAAKy6B,EAAGlxB,iBAAiB9uI,EAC1BulI;GAAG+N,cACF5O,EAAGgH,MAAQnG,GAAGmG,MACdhH,EAAGiH,MAAQpG,GAAGoG,MACdjH,EAAG0O,OAAS7N,GAAG6N,OACf1O,EAAG2O,OAAS9N,GAAG8N,OACf3O,EAAGo5B,gBAAkBv4B,GACrB1pI,KAAKqc,KAAKwsH,IAMtB,GAAG7oI,KAAKoiK,YAAcn9G,EAAM49G,cACxB,IAAI1+J,EAAE,EAAGA,IAAIm3J,EAASn3J,IAClBwsH,EAAOxsH,GAAGwuJ,UAAU3yJ,KAAKk0C,MAAM,EAAO3E,OAEvC,IAAGvvC,KAAKoiK,YAAcn9G,EAAM69G,iBAAmB9iK,KAAKuhK,YAAY,CAGnE,IAAIp9J,EAAE,EAAGA,IAAIm3J,EAASn3J,IAClBwsH,EAAOxsH,GAAGwuJ,UAAU3yJ,KAAKk0C,MAAM,EAAM3E,EAIzC,KAAI,GAAIprC,GAAE,EAAGA,EAAEnE,KAAKsgK,cAAcpB,QAAQ76J,OAAQF,IAAI,CAClD,GAAIi4J,GAASp8J,KAAKsgK,cAAcpB,QAAQ/6J,EACrCi4J,GAAOvM,gBACNuM,EAAO3J,SAQnB,GAHAzyJ,KAAKmzD,UAAW,EAGbnzD,KAAKqhK,kBAAkBh9J,OAAO,CAC7B,IAAI,GAAIF,GAAE,EAAGA,IAAInE,KAAKqhK,kBAAkBh9J,OAAQF,IAC5CnE,KAAK6kK,WAAW7kK,KAAKqhK,kBAAkBl9J,GAE3CnE,MAAKqhK,kBAAkBh9J,OAAS,EAGpCrE,KAAKqc,KAAKrc,KAAK2hK,eAGnB,IAAImD,GAAYj2B,EAAKxiI,SACjB04J,EAAYl2B,EAAKxiI,QAUrB44C,GAAM2/G,cAAgB,SAAStwG,EAAK/kB,GAChC,GAAIy1H,GAAO1wG,EAAK26F,QACZtpH,EAAI2uB,EAAKjS,MACTt8C,EAAMuuD,EAAK3sD,SACXs9J,EAAO3wG,EAAKkwD,QAGhBqqB,GAAKroG,KAAK8tB,EAAKi7F,iBAAkBj7F,EAAK3sD,UACtC2sD,EAAKk7F,cAAgBl7F,EAAKhuD,MAGtBguD,EAAK86F,gBACL96F,EAAK8vD,iBAAmB9vD,EAAKg3F,aAAeh3F,EAAK66F,WAAa5/G,EAC9D+kB,EAAKhuD,OAASguD,EAAK8vD,gBAAkB70E,GAIzCs/F,EAAKzoI,MAAM0+J,EAAUn/H,EAAE4J,EAAGy1H,GAC1Bn2B,EAAK7lG,IAAIi8H,EAAKH,EAAUG,GACxBp2B,EAAKzoI,MAAM2+J,EAAUE,EAAK11H,GAC1Bs/F,EAAK7lG,IAAIjjC,EAAIA,EAAIg/J,GAEjBzwG,EAAK8vF,iBAAkB,GAiB3Bn/F,EAAMphD,UAAU8gK,eAAiB,SAASR,EAAGvyB,EAAG2I,EAAGz1I,EAAG01I,EAAGjI,EAAGkI,EAAGz1I,EAAG01I,EAAGgX,EAAGwT,GAGpE,GAAgD,KAA1C3qB,EAAGyf,eAAiBvf,EAAGwf,gBAAmE,KAA1Cxf,EAAGuf,eAAiBzf,EAAG0f,eAA7E,CAKAprB,EAAKxoI,OAAOk9J,EAAKz+J,EAAI8sI,EAAGtrI,OACxBuoI,EAAKxoI,OAAOm9J,EAAKx+J,EAAIutI,EAAGjsI,OACxBuoI,EAAK7lG,IAAIu6H,EAAKA,EAAK3xB,EAAGjqI,UACtBknI,EAAK7lG,IAAIw6H,EAAKA,EAAKjxB,EAAG5qI,SACtB,IAAIw9J,GAAM3qB,EAAK5I,EAAGtrI,MACd8+J,EAAM1qB,EAAKnI,EAAGjsI,KAElB69J,GAAGhxB,eAAiBue,EAAGlE,SAAW,EAClC2W,EAAG9wB,oBAAsBqe,EAAGlE,QAC5B,IAAI6X,EAEAA,GADDzzB,EAAG3uI,OAASm8G,EAAKmxB,QAAUqB,EAAG3uI,OAASm8G,EAAKoxB,UAC7B+B,EAAGnrB,KACXmrB,EAAGtvI,OAASm8G,EAAKmxB,QAAUgC,EAAGtvI,OAASm8G,EAAKoxB,UACpCoB,EAAGxqB,KAEFwqB,EAAGxqB,KAAKmrB,EAAGnrB,MAAOwqB,EAAGxqB,KAAKmrB,EAAGnrB,MAEhD+8C,EAAG/wB,UAAYse,EAAGlE,SAAS0X,EAAKG,EAChClB,EAAGzwB,YAAcge,EAAGhe,YACpBywB,EAAG7wB,gBAAkBoe,EAAGpe,gBACxB6wB,EAAGnwB,kBAAoB0d,EAAG1d,kBAC1BmwB,EAAGlwB,mBAAqByd,EAAGzd,mBAC3BkwB,EAAGxwB,UAAY+d,EAAG/d,UAClBwwB,EAAGrwB,WAAa4d,EAAG5d,WACnBqwB,EAAG9vB,gBAAkBqd,EAAGrd,eAExB,IAAIixB,GAAWnB,EAAG5pB,EAAGt3I,KAAOw3I,EAAGx3I,MAC3Bk1I,EAAc,CAClB,IAAImtB,EAAU,CACV,GAAInL,GAAS5f,EAAG4f,QAAU1f,EAAG0f,OACzBoL,EAAoBpB,EAAGjxB,kBAAkB7uI,MAEzC8zI,GADAoC,EAAGt3I,KAAOw3I,EAAGx3I,KACCqiK,EAASvhK,KAAKogK,EAAIvyB,EAAG2I,EAAGgpB,EAAI4B,EAAK5yB,EAAGkI,EAAG+oB,EAAI4B,EAAKjL,GAEhDmL,EAASvhK,KAAKogK,EAAI5xB,EAAGkI,EAAG+oB,EAAI4B,EAAKxzB,EAAG2I,EAAGgpB,EAAI4B,EAAKhL,EAElE,IAAIqL,GAAuBrB,EAAGjxB,kBAAkB7uI,OAASkhK,CAEzD,IAAGptB,EAAY,CAEX,GAAIvG,EAAGge,YACHhe,EAAG3uI,OAASm8G,EAAKuwC,SACjB/d,EAAGnB,aAAgBrxB,EAAKsxB,UACxB6B,EAAG9B,aAAgBrxB,EAAK0wC,OACxBvd,EAAGtvI,OAASm8G,EAAKmxB,OACpB,CACG,GAAIk1B,GAAgB52B,EAAKoB,cAAcsC,EAAG/tB,UAAYtiH,KAAK+3F,IAAIs4C,EAAGnuB,gBAAgB,GAC9EshD,EAAqBxjK,KAAK+3F,IAAIs4C,EAAGwd,gBAAgB,EAClD0V,IAAoC,EAAnBC,IAChB9zB,EAAGwe,yBAA0B,GAIrC,GAAI7d,EAAGqd,YACHrd,EAAGtvI,OAASm8G,EAAKuwC,SACjBpd,EAAG9B,aAAgBrxB,EAAKsxB,UACxBkB,EAAGnB,aAAgBrxB,EAAK0wC,OACxBle,EAAG3uI,OAASm8G,EAAKmxB,OACpB,CACG,GAAIo1B,GAAgB92B,EAAKoB,cAAc2B,EAAGptB,UAAYtiH,KAAK+3F,IAAI23C,EAAGxtB,gBAAgB,GAC9EwhD,EAAqB1jK,KAAK+3F,IAAI23C,EAAGme,gBAAgB,EAClD4V,IAAoC,EAAnBC,IAChBrzB,EAAG6d,yBAA0B,GAKrC,GADApwJ,KAAKmzJ,cAAcmK,eAAe1rB,EAAI2I,EAAIhI,EAAIkI,GAC3Cz6I,KAAKm6C,IAAI,iBAAmBn6C,KAAKmzJ,cAAc0K,aAAatjB,EAAIE,GAAI,CAGnE,GAAI9+H,GAAI3b,KAAKsiK,iBASb,IARA3mJ,EAAE47H,OAASgD,EACX5+H,EAAE67H,OAASiD,EACX9+H,EAAEk0H,MAAQ+B,EACVj2H,EAAEm0H,MAAQyC,EAGV52H,EAAEs3H,iBAAiB5uI,OAAS,EAEH,gBAAhB,GACL,IAAI,GAAIF,GAAEggK,EAAGlxB,iBAAiB5uI,OAAO8zI,EAAah0I,EAAEggK,EAAGlxB,iBAAiB5uI,OAAQF,IAC5EwX,EAAEs3H,iBAAiB3uI,KAAK6/J,EAAGlxB,iBAAiB9uI,GAIpDnE,MAAKqc,KAAKV,GAId,GAAyB,gBAAhB,IAA4B6pJ,EAAuB,EACxD,IAAI,GAAIrhK,GAAEggK,EAAGjxB,kBAAkB7uI,OAAOmhK,EAAsBrhK,EAAEggK,EAAGjxB,kBAAkB7uI,OAAQF,IAAI,CAC3F,GAAIwhC,GAAIw+H,EAAGjxB,kBAAkB/uI,EAC7BwhC,GAAEgyG,aAAahyG,EAAE+mH,eAAiB8Y,QActDvgH,EAAMphD,UAAUgiK,UAAY,SAASr7H,GACjCxqC,KAAKkgK,QAAQ57J,KAAKkmC,GAClBxqC,KAAK8hK,eAAeC,OAASv3H,EAC7BxqC,KAAKqc,KAAKrc,KAAK8hK,iBASnB78G,EAAMphD,UAAUiiK,aAAe,SAASt7H,GACpC,GAAIzzB,GAAM/W,KAAKkgK,QAAQ78J,QAAQmnC,EACtB,MAANzzB,GACCqtB,EAAMv3B,OAAO7M,KAAKkgK,QAAQnpJ,EAAI,IAgBtCkuC,EAAMphD,UAAUkiK,QAAU,SAASzxG,GACE,KAA9Bt0D,KAAK2wH,OAAOttH,QAAQixD,KACnBt0D,KAAK2wH,OAAOrsH,KAAKgwD,GACjBA,EAAKliB,MAAQpyC,KACbA,KAAK4hK,aAAattG,KAAOA,EACzBt0D,KAAKqc,KAAKrc,KAAK4hK,gBAUvB38G,EAAMphD,UAAUghK,WAAa,SAASvwG,GAClC,GAAGt0D,KAAKmzD,SACJnzD,KAAKqhK,kBAAkB/8J,KAAKgwD,OACzB,CACHA,EAAKliB,MAAQ,IACb,IAAIr7B,GAAM/W,KAAK2wH,OAAOttH,QAAQixD,EACrB,MAANv9C,IACCqtB,EAAMv3B,OAAO7M,KAAK2wH,OAAO55G,EAAI,GAC7B/W,KAAK6hK,gBAAgBvtG,KAAOA,EAC5BA,EAAK89F,0BACLpyJ,KAAKqc,KAAKrc,KAAK6hK,oBAU3B58G,EAAMphD,UAAUmiK,YAAc,SAAS9/J,GAEnC,IAAI,GADAyqH,GAAS3wH,KAAK2wH,OACVxsH,EAAE,EAAGA,EAAEwsH,EAAOtsH,OAAQF,IAAI,CAC9B,GAAImB,GAAIqrH,EAAOxsH,EACf,IAAGmB,EAAEY,KAAOA,EACR,MAAOZ,GAGf,OAAO,GASX2/C,EAAMphD,UAAUoiK,qBAAuB,SAASp2B,EAAMC,GAClD9vI,KAAKmgK,2BAA2B77J,KAAKurI,EAAMC,IAS/C7qF,EAAMphD,UAAUqiK,oBAAsB,SAASr2B,EAAMC,GAEjD,IAAI,GADAqyB,GAAQniK,KAAKmgK,2BACTh8J,EAAE,EAAGA,EAAEg+J,EAAM99J,OAAQF,GAAG,EAC5B,GAAIg+J,EAAMh+J,KAAO0rI,GAASsyB,EAAMh+J,EAAE,KAAO2rI,GAAWqyB,EAAMh+J,EAAE,KAAO0rI,GAASsyB,EAAMh+J,KAAO2rI,EAErF,WADAqyB,GAAMt1J,OAAO1I,EAAE,IAuC3B8gD,EAAMphD,UAAUisB,MAAQ,WAEpB9vB,KAAKk0C,KAAO,EACZl0C,KAAKshK,cAAgB,EAGlBthK,KAAKogK,QAAUpgK,KAAKogK,OAAO1b,UAAUrgJ,QACpCrE,KAAKogK,OAAO/D,oBAKhB,KAAI,GADA8J,GAAKnmK,KAAK6gK,YACN18J,EAAEgiK,EAAG9hK,OAAO,EAAGF,GAAG,EAAGA,IACzBnE,KAAKqjK,iBAAiB8C,EAAGhiK,GAK7B,KAAI,GADAwsH,GAAS3wH,KAAK2wH,OACVxsH,EAAEwsH,EAAOtsH,OAAO,EAAGF,GAAG,EAAGA,IAC7BnE,KAAK6kK,WAAWl0C,EAAOxsH,GAK3B,KAAI,GADA+7J,GAAUlgK,KAAKkgK,QACX/7J,EAAE+7J,EAAQ77J,OAAO,EAAGF,GAAG,EAAGA,IAC9BnE,KAAK8lK,aAAa5F,EAAQ/7J,GAK9B,KAAI,GADAiiK,GAAMpmK,KAAKohK,iBACPj9J,EAAEiiK,EAAI/hK,OAAO,EAAGF,GAAG,EAAGA,IAC1BnE,KAAKkjK,sBAAsBkD,EAAIjiK,GAGnC8gD,GAAMxhD,MAAMzD,OAQhBilD,EAAMphD,UAAUa,MAAQ,WACpB,GAAI0tC,GAAQ,GAAI6S,EAEhB,OADA7S,GAAMi0H,SAASrmK,KAAKigI,UACb7tF,EAGX,IAAIk0H,GAAez3B,EAAKxiI,SACpBk6J,EAAe13B,EAAK8G,WAAW,EAAE,GACjC6wB,EAAe33B,EAAK8G,WAAW,EAAE,EAUrC1wF,GAAMphD,UAAUs3D,QAAU,SAASu5E,EAAW/jB,EAAO6Y,GACjDA,EAAYA,GAAa,CAGzB,IAAIi9B,GAAK,GAAIrnD,IAAOz3G,SAAS+sI,IACzBgyB,EAAK,GAAIv3E,GACTpwE,EAAK21H,EACLiyB,EAAK,EACLpiK,EAAI+hK,EACJM,EAAOL,EACP1iE,EAAM2iE,CACVC,GAAG1V,SAAS2V,EAMZ,KAAI,GAJA5oJ,GAAI9d,KAAKqgK,YACTppJ,KAGI9S,EAAE,EAAG26D,EAAE6xD,EAAOtsH,OAAQF,IAAI26D,EAAG36D,IAEjC,IAAI,GADAmB,GAAIqrH,EAAOxsH,GACPU,EAAE,EAAGgiK,EAAGvhK,EAAEwpJ,OAAOzqJ,OAAQQ,IAAIgiK,EAAIhiK,IAAI,CACzC,GAAI2lC,GAAIllC,EAAEwpJ,OAAOjqJ,GACb6hB,EAASphB,EAAEypJ,aAAalqJ,IAAM+hK,EAC9BtgK,EAAQhB,EAAE0pJ,YAAYnqJ,IAAM,CAGhCgqI,GAAKxoI,OAAO9B,EAAGmiB,EAAQphB,EAAEgB,OACzBuoI,EAAK7lG,IAAIzkC,EAAGA,EAAGe,EAAEqC,SACjB,IAAItC,GAAIiB,EAAQhB,EAAEgB,OAEbkkC,YAAaxD,IAAalpB,EAAE8gI,eAAiBt5I,EAAEklC,EAAEjmC,EAAEc,EAAOohK,EAAGC,EAAG3nJ,EAAG4nJ,GAAI,IACvEn8H,YAAagrG,IAAa13H,EAAEmgI,eAAiBwoB,EAAGC,EAAG3nJ,EAAG4nJ,EAAIrhK,EAAEklC,EAAEjmC,EAAEc,GAAO,IACvEmlC,YAAa+qH,IAAaz3I,EAAE6gI,cAAiB8nB,EAAGC,EAAG3nJ,EAAG4nJ,EAAIrhK,EAAEklC,EAAEjmC,EAAEc,GAAO,IACvEmlC,YAAa4qH,IAAat3I,EAAEm+H,gBAAiBwqB,EAAGC,EAAG3nJ,EAAG4nJ,EAAIrhK,EAAEklC,EAAEjmC,EAAEc,GAAO,IACvEmlC,YAAa2kD,IAAa0/C,EAAKoB,cAAcpB,EAAKkB,IAAIlsC,EAAIt/F,EAAEmwI,IAAelL,EAAUA,IAEtFvyH,EAAO3S,KAAKgB,GAKxB,MAAO2R,IAUXguC,EAAMphD,UAAUijK,4BAA8B,SAASC,GACnDA,EAAaA,KAGb,KAAI,GAAI5iK,GAAE,EAAGA,IAAMnE,KAAK6gK,YAAYx8J,OAAQF,IAExC,IAAI,GADAoB,GAAIvF,KAAK6gK,YAAY18J,GACjBU,EAAE,EAAGA,IAAMU,EAAEm/I,UAAUrgJ,OAAQQ,IAAI,CACvC,GAAI6kI,GAAKnkI,EAAEm/I,UAAU7/I,EACe,oBAA1BkiK,GAAoB,YAC1Br9B,EAAGiK,UAAYozB,EAAWpzB,WAEO,mBAA3BozB,GAAqB,aAC3Br9B,EAAGoK,WAAaizB,EAAWjzB,YAE/BpK,EAAGzrG,aAAc,EAKzB,IAAI,GAAI95B,GAAE,EAAGA,IAAMnE,KAAKohK,iBAAiB/8J,OAAQF,IAAI,CACjD,GAAIoB,GAAIvF,KAAKohK,iBAAiBj9J,EACM,oBAA1B4iK,GAAoB,YAC1BxhK,EAAEouI,UAAYozB,EAAWpzB,UACzBpuI,EAAEyuI,kBAAoB+yB,EAAWpzB,WAEA,mBAA3BozB,GAAqB,aAC3BxhK,EAAEuuI,WAAaizB,EAAWjzB,WAC1BvuI,EAAE0uI,mBAAqB8yB,EAAWjzB,YAK1C,GAAIvuI,GAAIvF,KAAK+gK,sBACuB,oBAA1BgG,GAAoB,YAC1BxhK,EAAEouI,UAAYozB,EAAWpzB,UACzBpuI,EAAEyuI,kBAAoB+yB,EAAWpzB,WAEA,mBAA3BozB,GAAqB,aAC3BxhK,EAAEuuI,WAAaizB,EAAWjzB,WAC1BvuI,EAAE0uI,mBAAqB8yB,EAAWjzB,aAS1C7uF,EAAMphD,UAAUmjK,mBAAqB,SAASrzB,GAC1C3zI,KAAK8mK,6BACDnzB,UAAWA,KASnB1uF,EAAMphD,UAAUojK,oBAAsB,SAASnzB,GAC3C9zI,KAAK8mK,6BACDhzB,WAAYA,OAIjBozB,qBAAqB,EAAE10B,0BAA0B,GAAG20B,+BAA+B,GAAGC,2BAA2B,GAAGC,6BAA6B,GAAGC,4BAA4B,GAAGC,oCAAoC,GAAGC,gCAAgC,GAAGC,gCAAgC,GAAGC,qCAAqC,GAAGC,oCAAoC,GAAGpU,yBAAyB,GAAGqU,8BAA8B,GAAGC,uBAAuB,GAAGz4B,eAAe,GAAGyB,kBAAkB,GAAGi3B,0BAA0B,GAAGC,8BAA8B,GAAGC,oBAAoB,GAAGv1B,mBAAmB,GAAGiR,mBAAmB,GAAGukB,iBAAiB,GAAGv1B,qBAAqB,GAAGC,kBAAkB,GAAGgR,sBAAsB,GAAG7Q,kBAAkB,GAAGo1B,qBAAqB,GAAGC,mBAAmB,GAAGC,yBAAyB,GAAG/4B,iBAAiB,GAAGg5B,kBAAkB,GAAGp+B,oBAAsB,EAAEC,qBAAuB,SAAS,KAC14B,MAUDv7F,GAAGywE,KAAKv7G,UAAUwE,OAAS,KAC3BsmC,GAAG+kH,OAAO7vJ,UAAUwE,OAAS,KAW7B+5B,OAAO0d,QAAQ8iE,GAAK,SAAUzwE,EAAMsL,GAKhCz9C,KAAKmyC,KAAOA,EAEU,mBAAXsL,IAA2BA,EAAOnX,eAAe,YAAemX,EAAOnX,eAAe,gBAE7FmX,GAAWulE,SAAU,EAAG,GAAI49C,WAAY,GAAIjyH,IAAGm1G,gBAOnD9jJ,KAAKy9C,OAASA,EAMdz9C,KAAKoyC,MAAQ,GAAIzD,IAAGsW,MAAMjlD,KAAKy9C,QAM/Bz9C,KAAKslF,UAAY,EAAI,GAMrBtlF,KAAKsoK,gBAAiB,EAMtBtoK,KAAK00C,QAAS,EAMd10C,KAAKuoK,aAKLvoK,KAAKgjH,QAAU,GAAI5gF,QAAO0d,QAAQ8iE,GAAG4lD,kBAAkBxoK,KAAMA,KAAKoyC,MAAM4wE,SAKxEhjH,KAAKyoK,OAAUtiI,KAAM,KAAMD,MAAO,KAAM8B,IAAK,KAAMC,OAAQ,MAK3DjoC,KAAK0oK,YAAc,GAAItmI,QAAOuW,OAK9B34C,KAAK2oK,cAAgB,GAAIvmI,QAAOuW,OAKhC34C,KAAK4oK,cAAgB,GAAIxmI,QAAOuW,OAKhC34C,KAAK6oK,gBAAkB,GAAIzmI,QAAOuW,OAKlC34C,KAAK8oK,kBAAoB,GAAI1mI,QAAOuW,OAKpC34C,KAAK+oK,oBAAsB,GAAI3mI,QAAOuW,OAKtC34C,KAAKgpK,uBAAyB,GAAI5mI,QAAOuW,OAKzC34C,KAAKipK,yBAA2B,GAAI7mI,QAAOuW,OAK3C34C,KAAKkpK,uBAAyB,KAK9BlpK,KAAK82C,gBAAkB,KAKvB92C,KAAKmpK,eAAiB,GAAI/mI,QAAOuW,OAKjC34C,KAAKopK,aAAe,GAAIhnI,QAAOuW,OAG3B8E,EAAOnX,eAAe,QAAUmX,EAAOnX,eAAe,QAAUmX,EAAOnX,eAAe,SAAWmX,EAAOnX,eAAe,UAEvHtmC,KAAKqpK,IAAM5rH,EAAO4rH,IAClBrpK,KAAKspK,KAAO7rH,EAAO6rH,KACnBtpK,KAAKupK,IAAM9rH,EAAO8rH,IAClBvpK,KAAKwpK,KAAO/rH,EAAO+rH,MAIvBxpK,KAAKoyC,MAAMviC,GAAG,eAAgB7P,KAAKypK,oBAAqBzpK,MACxDA,KAAKoyC,MAAMviC,GAAG,aAAc7P,KAAK0pK,kBAAmB1pK,MAKpDA,KAAK2pK,mBAKL3pK,KAAK4pK,sBAAwB,GAAIxnI,QAAO0d,QAAQ8iE,GAAGinD,eAAe,GAKlE7pK,KAAK8pK,qBAAuB,GAAI1nI,QAAO0d,QAAQ8iE,GAAGinD,eAAe,GAKjE7pK,KAAK+pK,yBAA2B,GAAI3nI,QAAO0d,QAAQ8iE,GAAGinD,eAAe,YAKrE7pK,KAAKgqK,sBAMLhqK,KAAKiqK,aAMLjqK,KAAKkqK,kBAAoB,EAGzBlqK,KAAKwzC,kBAAiB,GAAM,GAAM,GAAM,GAAM,IAIlDpR,OAAO0d,QAAQ8iE,GAAG/+G,WAQdsmK,mBAAoB,SAAU71G,GAE1Bt0D,KAAKiqK,UAAU3lK,KAAKgwD,IASxBld,UAAW,WAIP,IAFA,GAAIjzC,GAAInE,KAAKiqK,UAAU5lK,OAEhBF,KAEHnE,KAAK6kK,WAAW7kK,KAAKiqK,UAAU9lK,GAGnCnE,MAAKiqK,UAAU5lK,OAAS,GAc5B6qB,OAAQ,SAAUijC,EAAQza,EAAOtrC,GAER,mBAAVsrC,KAAyBA,GAAQ,GACpB,mBAAbtrC,KAA4BA,GAAW,EAElD,IAAIjI,GAAI,CAER,IAAIrC,MAAM6kC,QAAQwrB,GAId,IAFAhuD,EAAIguD,EAAO9tD,OAEJF,KAECguD,EAAOhuD,YAAci+B,QAAOsd,MAG5B1/C,KAAKkvB,OAAOijC,EAAOhuD,GAAGiI,SAAUsrC,EAAOtrC,IAIvCpM,KAAK4/C,WAAWuS,EAAOhuD,GAAIuzC,GAEvBtrC,GAAY+lD,EAAOhuD,GAAGmiC,eAAe,aAAe6rB,EAAOhuD,GAAGiI,SAAS/H,OAAS,GAEhFrE,KAAKkvB,OAAOijC,EAAOhuD,GAAIuzC,GAAO,QAOtCya,aAAkB/vB,QAAOsd,MAGzB1/C,KAAKkvB,OAAOijC,EAAO/lD,SAAUsrC,EAAOtrC,IAIpCpM,KAAK4/C,WAAWuS,EAAQza,GAEpBtrC,GAAY+lD,EAAO7rB,eAAe,aAAe6rB,EAAO/lD,SAAS/H,OAAS,GAE1ErE,KAAKkvB,OAAOijC,EAAO/lD,SAAUsrC,GAAO,KAepDkI,WAAY,SAAUuS,EAAQza,GAEtBya,EAAO7rB,eAAe,SAA2B,OAAhB6rB,EAAOmC,OAExCnC,EAAOmC,KAAO,GAAIlyB,QAAO0d,QAAQ8iE,GAAGxD,KAAKp/G,KAAKmyC,KAAMggB,EAAQA,EAAO5tD,EAAG4tD,EAAO3tD,EAAG,GAChF2tD,EAAOmC,KAAK5c,MAAQA,EACpBya,EAAOlmD,OAAO3C,IAAI,MAY1B8gK,gBAAiB,SAAU3zH,GAEnBA,EAEAz2C,KAAKoyC,MAAMviC,GAAG,SAAU7P,KAAKqqK,cAAerqK,MAI5CA,KAAKoyC,MAAMp1B,IAAI,SAAUhd,KAAKqqK,cAAerqK,OAerDsqK,0BAA2B,SAAUjwJ,EAAUvJ,GAE3C9Q,KAAKkpK,uBAAyB7uJ,EAC9Bra,KAAK82C,gBAAkBhmC,EAEN,OAAbuJ,EAEAra,KAAKoyC,MAAMviC,GAAG,iBAAkB7P,KAAKuqK,sBAAuBvqK,MAI5DA,KAAKoyC,MAAMp1B,IAAI,iBAAkBhd,KAAKuqK,sBAAuBvqK,OAYrEuqK,sBAAuB,SAAUj6I,GAE7B,GAAInsB,GAAImsB,EAAM6xI,MAAM99J,MAEpB,IAAIrE,KAAKkpK,wBAA0B/kK,EAAI,EAEnC,KAAOA,GAAK,GAEJmsB,EAAM6xI,MAAMh+J,GAAGkE,QAAUioB,EAAM6xI,MAAMh+J,EAAE,GAAGkE,SAAWrI,KAAKkpK,uBAAuBnlK,KAAK/D,KAAK82C,gBAAiBxmB,EAAM6xI,MAAMh+J,GAAGkE,OAAQioB,EAAM6xI,MAAMh+J,EAAE,GAAGkE,SAEpJioB,EAAM6xI,MAAMt1J,OAAO1I,EAAG,IActCkmK,cAAe,SAAU/5I,GAErB,GAAIA,EAAMu/G,MAAMxnI,QAAUioB,EAAMw/G,MAAMznI,OACtC,CAEI,GAAIhD,GAAIirB,EAAMu/G,MAAMxnI,OAChB/C,EAAIgrB,EAAMw/G,MAAMznI,MAEhBhD,GAAEmlK,eAAel6I,EAAMw/G,MAAM5pI,KAE7Bb,EAAEmlK,eAAel6I,EAAMw/G,MAAM5pI,IAAInC,KAAKsB,EAAEolK,qBAAqBn6I,EAAMw/G,MAAM5pI,IAAKb,EAAGC,EAAGgrB,EAAMinH,OAAQjnH,EAAMknH,QAGxGlyI,EAAEklK,eAAel6I,EAAMu/G,MAAM3pI,KAE7BZ,EAAEklK,eAAel6I,EAAMu/G,MAAM3pI,IAAInC,KAAKuB,EAAEmlK,qBAAqBn6I,EAAMu/G,MAAM3pI,IAAKZ,EAAGD,EAAGirB,EAAMknH,OAAQlnH,EAAMinH,QAIxGlyI,EAAEqlK,gBAAgBp6I,EAAMknH,OAAOwiB,iBAE/B30J,EAAEqlK,gBAAgBp6I,EAAMknH,OAAOwiB,gBAAgBj2J,KAAKsB,EAAEslK,sBAAsBr6I,EAAMknH,OAAOwiB,gBAAiB30J,EAAGC,EAAGgrB,EAAMinH,OAAQjnH,EAAMknH,QAGpIlyI,EAAEolK,gBAAgBp6I,EAAMinH,OAAOyiB,iBAE/B10J,EAAEolK,gBAAgBp6I,EAAMinH,OAAOyiB,gBAAgBj2J,KAAKuB,EAAEqlK,sBAAsBr6I,EAAMinH,OAAOyiB,gBAAiB10J,EAAGD,EAAGirB,EAAMknH,OAAQlnH,EAAMinH,UAYhJkyB,oBAAqB,SAAUn5I,GAE3BtwB,KAAKmpK,eAAerwH,SAASxoB,EAAMu/G,MAAOv/G,EAAMw/G,MAAOx/G,EAAMinH,OAAQjnH,EAAMknH,OAAQlnH,EAAM2iH,kBAErF3iH,EAAMu/G,MAAMxnI,QAEZioB,EAAMu/G,MAAMxnI,OAAO8gK,eAAerwH,SAASxoB,EAAMw/G,MAAMznI,OAAQioB,EAAMinH,OAAQjnH,EAAMknH,OAAQlnH,EAAM2iH,kBAGjG3iH,EAAMw/G,MAAMznI,QAEZioB,EAAMw/G,MAAMznI,OAAO8gK,eAAerwH,SAASxoB,EAAMu/G,MAAMxnI,OAAQioB,EAAMknH,OAAQlnH,EAAMinH,OAAQjnH,EAAM2iH,mBAWzGy2B,kBAAmB,SAAUp5I,GAEzBtwB,KAAKopK,aAAatwH,SAASxoB,EAAMu/G,MAAOv/G,EAAMw/G,MAAOx/G,EAAMinH,OAAQjnH,EAAMknH,QAErElnH,EAAMu/G,MAAMxnI,QAEZioB,EAAMu/G,MAAMxnI,OAAO+gK,aAAatwH,SAASxoB,EAAMw/G,MAAMznI,OAAQioB,EAAMinH,OAAQjnH,EAAMknH,QAGjFlnH,EAAMw/G,MAAMznI,QAEZioB,EAAMw/G,MAAMznI,OAAO+gK,aAAatwH,SAASxoB,EAAMu/G,MAAMxnI,OAAQioB,EAAMknH,OAAQlnH,EAAMinH,SAgBzF/jG,iBAAkB,SAAUrN,EAAMD,EAAO8B,EAAKC,EAAQ2iI,GAElD5qK,KAAKmlD,UAAUnlD,KAAKmyC,KAAKC,MAAMvnC,OAAOtG,EAAGvE,KAAKmyC,KAAKC,MAAMvnC,OAAOrG,EAAGxE,KAAKmyC,KAAKC,MAAMvnC,OAAO1D,MAAOnH,KAAKmyC,KAAKC,MAAMvnC,OAAOzD,OAAQ++B,EAAMD,EAAO8B,EAAKC,EAAQ2iI,IAc9JC,iBAAkB,SAAU3Q,EAAU/zH,EAAMD,EAAO8B,EAAKC,GAEhC,mBAAT9B,KAAwBA,GAAO,GACrB,mBAAVD,KAAyBA,GAAQ,GACzB,mBAAR8B,KAAuBA,GAAM,GAClB,mBAAXC,KAA0BA,GAAS,GAE1C9B,GAAQnmC,KAAKyoK,MAAMtiI,OAEnBnmC,KAAKyoK,MAAMtiI,KAAK2oH,OAAO,GAAGoL,SAAWA,GAGrCh0H,GAASlmC,KAAKyoK,MAAMviI,QAEpBlmC,KAAKyoK,MAAMviI,MAAM4oH,OAAO,GAAGoL,SAAWA,GAGtClyH,GAAOhoC,KAAKyoK,MAAMzgI,MAElBhoC,KAAKyoK,MAAMzgI,IAAI8mH,OAAO,GAAGoL,SAAWA,GAGpCjyH,GAAUjoC,KAAKyoK,MAAMxgI,SAErBjoC,KAAKyoK,MAAMxgI,OAAO6mH,OAAO,GAAGoL,SAAWA,IAa/C4Q,2BAA4B,SAAUF,GAElC,GAAIz7J,GAAOnP,KAAK+pK,yBAAyB56J,IAER,oBAAtBy7J,KAAqCz7J,EAAOnP,KAAK8pK,qBAAqB36J,MAE7EnP,KAAKyoK,MAAMtiI,OAEXnmC,KAAKyoK,MAAMtiI,KAAK2oH,OAAO,GAAGkL,eAAiB7qJ,GAG3CnP,KAAKyoK,MAAMviI,QAEXlmC,KAAKyoK,MAAMviI,MAAM4oH,OAAO,GAAGkL,eAAiB7qJ,GAG5CnP,KAAKyoK,MAAMzgI,MAEXhoC,KAAKyoK,MAAMzgI,IAAI8mH,OAAO,GAAGkL,eAAiB7qJ,GAG1CnP,KAAKyoK,MAAMxgI,SAEXjoC,KAAKyoK,MAAMxgI,OAAO6mH,OAAO,GAAGkL,eAAiB7qJ,IAoBrDg2C,UAAW,SAAU5gD,EAAGC,EAAG2C,EAAOC,EAAQ++B,EAAMD,EAAO8B,EAAKC,EAAQ2iI,GAE5C,mBAATzkI,KAAwBA,GAAO,GACrB,mBAAVD,KAAyBA,GAAQ,GACzB,mBAAR8B,KAAuBA,GAAM,GAClB,mBAAXC,KAA0BA,GAAS,GACb,mBAAtB2iI,KAAqCA,GAAoB,GAEhE5qK,KAAKyoK,MAAMtiI,MAEXnmC,KAAKoyC,MAAMyyH,WAAW7kK,KAAKyoK,MAAMtiI,MAGjCnmC,KAAKyoK,MAAMviI,OAEXlmC,KAAKoyC,MAAMyyH,WAAW7kK,KAAKyoK,MAAMviI,OAGjClmC,KAAKyoK,MAAMzgI,KAEXhoC,KAAKoyC,MAAMyyH,WAAW7kK,KAAKyoK,MAAMzgI,KAGjChoC,KAAKyoK,MAAMxgI,QAEXjoC,KAAKoyC,MAAMyyH,WAAW7kK,KAAKyoK,MAAMxgI,QAGjC9B,IAEAnmC,KAAKyoK,MAAMtiI,KAAO,GAAIwI,IAAGywE,MAAOgI,KAAM,EAAGz/G,UAAY3H,KAAKwpK,KAAKjlK,GAAIvE,KAAKwpK,KAAKhlK,IAAM8B,MAAO,qBAC1FtG,KAAKyoK,MAAMtiI,KAAK4qH,SAAS,GAAIpiH,IAAG4mH,OAE5BqV,IAEA5qK,KAAKyoK,MAAMtiI,KAAK2oH,OAAO,GAAGkL,eAAiBh6J,KAAK8pK,qBAAqB36J,MAGzEnP,KAAKoyC,MAAM2zH,QAAQ/lK,KAAKyoK,MAAMtiI,OAG9BD,IAEAlmC,KAAKyoK,MAAMviI,MAAQ,GAAIyI,IAAGywE,MAAOgI,KAAM,EAAGz/G,UAAY3H,KAAKwpK,KAAKjlK,EAAI4C,GAAQnH,KAAKwpK,KAAKhlK,IAAM8B,MAAO,sBACnGtG,KAAKyoK,MAAMviI,MAAM6qH,SAAS,GAAIpiH,IAAG4mH,OAE7BqV,IAEA5qK,KAAKyoK,MAAMviI,MAAM4oH,OAAO,GAAGkL,eAAiBh6J,KAAK8pK,qBAAqB36J,MAG1EnP,KAAKoyC,MAAM2zH,QAAQ/lK,KAAKyoK,MAAMviI,QAG9B8B,IAEAhoC,KAAKyoK,MAAMzgI,IAAM,GAAI2G,IAAGywE,MAAOgI,KAAM,EAAGz/G,UAAY3H,KAAKwpK,KAAKjlK,GAAIvE,KAAKwpK,KAAKhlK,IAAM8B,MAAO,qBACzFtG,KAAKyoK,MAAMzgI,IAAI+oH,SAAS,GAAIpiH,IAAG4mH,OAE3BqV,IAEA5qK,KAAKyoK,MAAMzgI,IAAI8mH,OAAO,GAAGkL,eAAiBh6J,KAAK8pK,qBAAqB36J,MAGxEnP,KAAKoyC,MAAM2zH,QAAQ/lK,KAAKyoK,MAAMzgI,MAG9BC,IAEAjoC,KAAKyoK,MAAMxgI,OAAS,GAAI0G,IAAGywE,MAAOgI,KAAM,EAAGz/G,UAAY3H,KAAKwpK,KAAKjlK,GAAIvE,KAAKwpK,KAAKhlK,EAAI4C,MACnFpH,KAAKyoK,MAAMxgI,OAAO8oH,SAAS,GAAIpiH,IAAG4mH,OAE9BqV,IAEA5qK,KAAKyoK,MAAMxgI,OAAO6mH,OAAO,GAAGkL,eAAiBh6J,KAAK8pK,qBAAqB36J,MAG3EnP,KAAKoyC,MAAM2zH,QAAQ/lK,KAAKyoK,MAAMxgI,UAUtCmO,MAAO,WAEHp2C,KAAK00C,QAAS,GASlB4B,OAAQ,WAEJt2C,KAAK00C,QAAS,GASlBl7B,OAAQ,WAGAxZ,KAAK00C,QAOL10C,KAAKoyC,MAAMzY,KAFX35B,KAAKsoK,eAEWtoK,KAAKmyC,KAAK+B,KAAKmyC,eAIfrmF,KAAKslF,YAU7Bx1D,MAAO,WAEH9vB,KAAKoyC,MAAMtiB,QAEX9vB,KAAKoyC,MAAMp1B,IAAI,eAAgBhd,KAAKypK,oBAAqBzpK,MACzDA,KAAKoyC,MAAMp1B,IAAI,aAAchd,KAAK0pK,kBAAmB1pK,MAErDA,KAAKkpK,uBAAyB,KAC9BlpK,KAAK82C,gBAAkB,KACvB92C,KAAK+qK,eAAiB,KAEtB/qK,KAAK2pK,mBACL3pK,KAAKiqK,aACLjqK,KAAKkqK,kBAAoB,EACzBlqK,KAAKgqK,uBAST99J,QAAS,WAELlM,KAAK8vB,QAEL9vB,KAAKmyC,KAAO,MAWhB4zH,QAAS,SAAUzxG,GAEf,MAAIA,GAAK19C,KAAKw7B,OAEH,GAIPpyC,KAAKoyC,MAAM2zH,QAAQzxG,EAAK19C,MAExB5W,KAAK0oK,YAAY5vH,SAASwb,IAEnB,IAYfuwG,WAAY,SAAUvwG,GASlB,MAPIA,GAAK19C,KAAKw7B,OAASpyC,KAAKoyC,QAExBpyC,KAAKoyC,MAAMyyH,WAAWvwG,EAAK19C,MAE3B5W,KAAK2oK,cAAc7vH,SAASwb,IAGzBA,GAWXuxG,UAAW,SAAU9D,GAajB,MATI/hK,MAAKoyC,MAAMyzH,UAFX9D,YAAkB3/H,QAAO0d,QAAQ8iE,GAAG8wC,QAAUqO,YAAkB3/H,QAAO0d,QAAQ8iE,GAAGoyC,iBAE7D+M,EAAOnrJ,KAIPmrJ,GAGzB/hK,KAAK4oK,cAAc9vH,SAASipH,GAErBA,GAWX+D,aAAc,SAAU/D,GAapB,MATI/hK,MAAKoyC,MAAM0zH,aAFX/D,YAAkB3/H,QAAO0d,QAAQ8iE,GAAG8wC,QAAUqO,YAAkB3/H,QAAO0d,QAAQ8iE,GAAGoyC,iBAE1D+M,EAAOnrJ,KAIPmrJ,GAG5B/hK,KAAK6oK,gBAAgB/vH,SAASipH,GAEvBA,GAgBXiJ,yBAA0B,SAAUn7B,EAAOC,EAAOroG,EAAU49G,EAAcC,EAAcG,GAKpF,MAHA5V,GAAQ7vI,KAAKirK,QAAQp7B,GACrBC,EAAQ9vI,KAAKirK,QAAQn7B,GAEhBD,GAAUC,EAMJ9vI,KAAK+iK,cAAc,GAAI3gI,QAAO0d,QAAQ8iE,GAAGwiC,mBAAmBplJ,KAAM6vI,EAAOC,EAAOroG,EAAU49G,EAAcC,EAAcG,QAJ7HliJ,SAAQo0C,KAAK,yDAmBrBuzH,qBAAsB,SAAUr7B,EAAOC,EAAOxpI,EAAOq3B,GAKjD,MAHAkyG,GAAQ7vI,KAAKirK,QAAQp7B,GACrBC,EAAQ9vI,KAAKirK,QAAQn7B,GAEhBD,GAAUC,EAMJ9vI,KAAK+iK,cAAc,GAAI3gI,QAAO0d,QAAQ8iE,GAAG8jC,eAAe1mJ,KAAM6vI,EAAOC,EAAOxpI,EAAOq3B,QAJ1Fp6B,SAAQo0C,KAAK,yDAsBrBwzH,yBAA0B,SAAUt7B,EAAOyZ,EAAQxZ,EAAOyZ,EAAQ9D,EAAU+D,GAKxE,MAHA3Z,GAAQ7vI,KAAKirK,QAAQp7B,GACrBC,EAAQ9vI,KAAKirK,QAAQn7B,GAEhBD,GAAUC,EAMJ9vI,KAAK+iK,cAAc,GAAI3gI,QAAO0d,QAAQ8iE,GAAGymC,mBAAmBrpJ,KAAM6vI,EAAOyZ,EAAQxZ,EAAOyZ,EAAQ9D,EAAU+D,QAJjHjmJ,SAAQo0C,KAAK,yDAoBrByzH,qBAAsB,SAAUv7B,EAAOC,EAAOppH,EAAQpgB,EAAOm/I,GAKzD,MAHA5V,GAAQ7vI,KAAKirK,QAAQp7B,GACrBC,EAAQ9vI,KAAKirK,QAAQn7B,GAEhBD,GAAUC,EAMJ9vI,KAAK+iK,cAAc,GAAI3gI,QAAO0d,QAAQ8iE,GAAGukC,eAAennJ,KAAM6vI,EAAOC,EAAOppH,EAAQpgB,EAAOm/I,QAJlGliJ,SAAQo0C,KAAK,yDAuBrB0zH,0BAA2B,SAAUx7B,EAAOC,EAAOw7B,EAAcC,EAASC,EAAS52F,EAAM6wE,GAKrF,MAHA5V,GAAQ7vI,KAAKirK,QAAQp7B,GACrBC,EAAQ9vI,KAAKirK,QAAQn7B,GAEhBD,GAAUC,EAMJ9vI,KAAK+iK,cAAc,GAAI3gI,QAAO0d,QAAQ8iE,GAAG6kC,oBAAoBznJ,KAAM6vI,EAAOC,EAAOw7B,EAAcC,EAASC,EAAS52F,EAAM6wE,QAJ9HliJ,SAAQo0C,KAAK,yDAgBrBorH,cAAe,SAAU0I,GAMrB,MAJAzrK,MAAKoyC,MAAM2wH,cAAc0I,GAEzBzrK,KAAK8oK,kBAAkBhwH,SAAS2yH,GAEzBA,GAWXpI,iBAAkB,SAAUoI,GAMxB,MAJAzrK,MAAKoyC,MAAMixH,iBAAiBoI,GAE5BzrK,KAAK+oK,oBAAoBjwH,SAAS2yH,GAE3BA,GAWXzI,mBAAoB,SAAU9I,GAM1B,MAJAl6J,MAAKoyC,MAAM4wH,mBAAmB9I,GAE9Bl6J,KAAKgpK,uBAAuBlwH,SAASohH,GAE9BA,GAWXgJ,sBAAuB,SAAUhJ,GAM7B,MAJAl6J,MAAKoyC,MAAM8wH,sBAAsBhJ,GAEjCl6J,KAAKipK,yBAAyBnwH,SAASohH,GAEhCA,GAYXiJ,mBAAoB,SAAU/V,EAAWC,GAErC,MAAOrtJ,MAAKoyC,MAAM+wH,mBAAmB/V,EAAWC,IAWpDqe,YAAa,SAAUxR,EAAUvpC,GAI7B,IAFA,GAAIxsH,GAAIwsH,EAAOtsH,OAERF,KAEHwsH,EAAOxsH,GAAGunK,YAAYxR,IAe9ByR,eAAgB,SAAUtuJ,EAAMi3C,GAE5Bj3C,EAAOA,GAAQ,EAEf,IAAI68I,GAAW,GAAI93H,QAAO0d,QAAQ8iE,GAAG0qC,SAASjwI,EAS9C,OAPArd,MAAKuoK,UAAUjkK,KAAK41J,GAEA,mBAAT5lG,IAEPA,EAAKo3G,YAAYxR,GAGdA,GAaX0R,sBAAuB,SAAUxe,EAAWC,EAAW1/H,GAE1B,mBAAdy/H,KAA6BA,EAAYptJ,KAAK2rK,kBAChC,mBAAdte,KAA6BA,EAAYrtJ,KAAK2rK,iBAEzD,IAAIlsB,GAAU,GAAIr9G,QAAO0d,QAAQ8iE,GAAGuqC,gBAAgBC,EAAWC,EAAW1/H,EAE1E,OAAO3tB,MAAKgjK,mBAAmBvjB,IAUnC8c,UAAW,WAKP,IAHA,GAAI50H,MACAxjC,EAAInE,KAAKoyC,MAAMu+E,OAAOtsH,OAEnBF,KAEHwjC,EAAOrjC,KAAKtE,KAAKoyC,MAAMu+E,OAAOxsH,GAAGkE,OAGrC,OAAOs/B,IAWXsjI,QAAS,SAAU94G,GAEf,MAAIA,aAAkBxjB,IAAGywE,KAGdjtD,EAEFA,YAAkB/vB,QAAO0d,QAAQ8iE,GAAGxD,KAGlCjtD,EAAOv7C,KAETu7C,EAAa,MAAKA,EAAa,KAAElvD,OAASm/B,OAAO0d,QAAQ8lC,KAGvDzzB,EAAOmC,KAAK19C,KAGhB,MAUXi1J,WAAY,WAKR,IAHA,GAAIlkI,MACAxjC,EAAInE,KAAKoyC,MAAM8tH,QAAQ77J,OAEpBF,KAEHwjC,EAAOrjC,KAAKtE,KAAKoyC,MAAM8tH,QAAQ/7J,GAAGkE,OAGtC,OAAOs/B,IAUXmkI,eAAgB,WAKZ,IAHA,GAAInkI,MACAxjC,EAAInE,KAAKoyC,MAAMyuH,YAAYx8J,OAExBF,KAEHwjC,EAAOrjC,KAAKtE,KAAKoyC,MAAMyuH,YAAY18J,GAAGkE,OAG1C,OAAOs/B,IAeXwzB,QAAS,SAAUu5E,EAAY/jB,EAAQ6Y,EAAWuiC,GAExB,mBAAXp7C,KAA0BA,EAAS3wH,KAAKoyC,MAAMu+E,QAChC,mBAAd6Y,KAA6BA,EAAY,GACxB,mBAAjBuiC,KAAgCA,GAAe,EAO1D,KALA,GAAIC,IAAoBhsK,KAAKwpK,KAAK90B,EAAWnwI,GAAIvE,KAAKwpK,KAAK90B,EAAWlwI,IAElEynK,KACA9nK,EAAIwsH,EAAOtsH,OAERF,KAECwsH,EAAOxsH,YAAci+B,QAAO0d,QAAQ8iE,GAAGxD,QAAU2sD,GAAgBp7C,EAAOxsH,GAAGyS,KAAK3T,OAAS0rC,GAAGywE,KAAKmxB,QAEjG07B,EAAM3nK,KAAKqsH,EAAOxsH,GAAGyS,MAEhB+5G,EAAOxsH,YAAcwqC,IAAGywE,MAAQuR,EAAOxsH,GAAGkE,UAAY0jK,GAAgBp7C,EAAOxsH,GAAGlB,OAAS0rC,GAAGywE,KAAKmxB,QAEtG07B,EAAM3nK,KAAKqsH,EAAOxsH,IAEbwsH,EAAOxsH,YAAci+B,QAAO12B,QAAUilH,EAAOxsH,GAAGmiC,eAAe,WAAaylI,GAAgBp7C,EAAOxsH,GAAGmwD,KAAK19C,KAAK3T,OAAS0rC,GAAGywE,KAAKmxB,SAEtI07B,EAAM3nK,KAAKqsH,EAAOxsH,GAAGmwD,KAAK19C,KAIlC,OAAO5W,MAAKoyC,MAAM+oB,QAAQ6wG,EAAiBC,EAAOziC,IAUtDvJ,OAAQ,WAEJ,MAAOjgI,MAAKoyC,MAAM6tF,UAWtBisC,qBAAsB,SAAU/5G,GAE5B,GAAIg6G,GAAUjqK,KAAK+3F,IAAI,EAAGj6F,KAAKkqK,kBAE3BlqK,MAAKyoK,MAAMtiI,OAEXnmC,KAAKyoK,MAAMtiI,KAAK2oH,OAAO,GAAGmL,cAAgBj6J,KAAKyoK,MAAMtiI,KAAK2oH,OAAO,GAAGmL,cAAgBkS,GAGpFnsK,KAAKyoK,MAAMviI,QAEXlmC,KAAKyoK,MAAMviI,MAAM4oH,OAAO,GAAGmL,cAAgBj6J,KAAKyoK,MAAMviI,MAAM4oH,OAAO,GAAGmL,cAAgBkS,GAGtFnsK,KAAKyoK,MAAMzgI,MAEXhoC,KAAKyoK,MAAMzgI,IAAI8mH,OAAO,GAAGmL,cAAgBj6J,KAAKyoK,MAAMzgI,IAAI8mH,OAAO,GAAGmL,cAAgBkS,GAGlFnsK,KAAKyoK,MAAMxgI,SAEXjoC,KAAKyoK,MAAMxgI,OAAO6mH,OAAO,GAAGmL,cAAgBj6J,KAAKyoK,MAAMxgI,OAAO6mH,OAAO,GAAGmL,cAAgBkS,GAG5FnsK,KAAKkqK,mBAEL,IAAInvF,GAAQ,GAAI34C,QAAO0d,QAAQ8iE,GAAGinD,eAAesC,EASjD,OAPAnsK,MAAK2pK,gBAAgBrlK,KAAKy2E,GAEtB5oB,GAEAnyD,KAAK4qK,kBAAkBz4G,EAAQ4oB,GAG5BA,GAYX6vF,kBAAmB,SAAUz4G,EAAQ4oB,GAEjC,GAAI5oB,YAAkB/vB,QAAOsd,MAEzB,IAAK,GAAIv7C,GAAI,EAAGA,EAAIguD,EAAO30B,MAAOr5B,IAE1BguD,EAAO/lD,SAASjI,GAAS,MAAKguD,EAAO/lD,SAASjI,GAAS,KAAElB,OAASm/B,OAAO0d,QAAQ8lC,MAEjFzzB,EAAO/lD,SAASjI,GAAGmwD,KAAKs2G,kBAAkB7vF,OAMlD5oB,GAAOmC,KAAKs2G,kBAAkB7vF,IAoBtCqxF,aAAc,SAAUv8B,EAAOC,EAAOkkB,EAAYrgB,EAAW8b,EAAS4c,EAAQC,EAAQC,EAAQC,GAK1F,MAHA38B,GAAQ7vI,KAAKirK,QAAQp7B,GACrBC,EAAQ9vI,KAAKirK,QAAQn7B,GAEhBD,GAAUC,EAMJ9vI,KAAK6lK,UAAU,GAAIzjI,QAAO0d,QAAQ8iE,GAAG8wC,OAAO1zJ,KAAM6vI,EAAOC,EAAOkkB,EAAYrgB,EAAW8b,EAAS4c,EAAQC,EAAQC,EAAQC,QAJ/HjpK,SAAQo0C,KAAK,qDAoBrB80H,uBAAwB,SAAU58B,EAAOC,EAAOmlB,EAAWthB,EAAW8b,GAKlE,MAHA5f,GAAQ7vI,KAAKirK,QAAQp7B,GACrBC,EAAQ9vI,KAAKirK,QAAQn7B,GAEhBD,GAAUC,EAMJ9vI,KAAK6lK,UAAU,GAAIzjI,QAAO0d,QAAQ8iE,GAAGoyC,iBAAiBh1J,KAAM6vI,EAAOC,EAAOmlB,EAAWthB,EAAW8b,QAJvGlsJ,SAAQo0C,KAAK,gEA0BrB+0H,WAAY,SAAUnoK,EAAGC,EAAG4iH,EAAMngE,EAAYt5B,EAAS/W,GAEzB,mBAAfqwC,KAA8BA,GAAa,EAEtD,IAAIqN,GAAO,GAAIlyB,QAAO0d,QAAQ8iE,GAAGxD,KAAKp/G,KAAKmyC,KAAM,KAAM5tC,EAAGC,EAAG4iH,EAE7D,IAAIxwG,EACJ,CACI,GAAIK,GAASq9C,EAAKq4G,WAAWh/I,EAAS/W,EAEtC,KAAKK,EAED,OAAO,EASf,MALIgwC,IAEAjnD,KAAKoyC,MAAM2zH,QAAQzxG,EAAK19C,MAGrB09C,GAoBXs4G,eAAgB,SAAUroK,EAAGC,EAAG4iH,EAAMngE,EAAYt5B,EAAS/W,GAE7B,mBAAfqwC,KAA8BA,GAAa,EAEtD,IAAIqN,GAAO,GAAIlyB,QAAO0d,QAAQ8iE,GAAGxD,KAAKp/G,KAAKmyC,KAAM,KAAM5tC,EAAGC,EAAG4iH,EAE7D,IAAIxwG,EACJ,CACI,GAAIK,GAASq9C,EAAKq4G,WAAWh/I,EAAS/W,EAEtC,KAAKK,EAED,OAAO,EASf,MALIgwC,IAEAjnD,KAAKoyC,MAAM2zH,QAAQzxG,EAAK19C,MAGrB09C,GAcXu4G,wBAAyB,SAAU97D,EAAK7pD,EAAOD,GAEjB,mBAAfA,KAA8BA,GAAa,EAItD,KAAK,GAFDtf,MAEKxjC,EAAI,EAAGm3B,EAAMy1E,EAAIsd,UAAUnnE,GAAO7iD,OAAYi3B,EAAJn3B,EAASA,IAC5D,CAUI,GAAIguD,GAAS4+C,EAAIsd,UAAUnnE,GAAO/iD,GAE9BmwD,EAAOt0D,KAAK0sK,WAAWv6G,EAAO5tD,EAAG4tD,EAAO3tD,EAAG,EAAGyiD,KAAgBkL,EAAO4lE,SAErEzjE,IAEA3sB,EAAOrjC,KAAKgwD,GAIpB,MAAO3sB,IAWXmlI,wBAAyB,SAAU/7D,EAAK7pD,GAEpCA,EAAQ6pD,EAAIof,SAASjpE,EAIrB,KAFA,GAAI/iD,GAAI4sG,EAAIhqD,OAAOG,GAAOypE,OAAOtsH,OAE1BF,KAEH4sG,EAAIhqD,OAAOG,GAAOypE,OAAOxsH,GAAG+H,SAGhC6kG,GAAIhqD,OAAOG,GAAOypE,OAAOtsH,OAAS,GAiBtC0oK,eAAgB,SAAUh8D,EAAK7pD,EAAOD,EAAY+lH,GAE9C9lH,EAAQ6pD,EAAIof,SAASjpE,GAEK,mBAAfD,KAA8BA,GAAa,GAC9B,mBAAb+lH,KAA4BA,GAAW,GAGlDhtK,KAAK8sK,wBAAwB/7D,EAAK7pD,EAMlC,KAAK,GAJD//C,GAAQ,EACRsmC,EAAK,EACLC,EAAK,EAEAlpC,EAAI,EAAGi2B,EAAIs2E,EAAIhqD,OAAOG,GAAO9/C,OAAYqzB,EAAJj2B,EAAOA,IACrD,CACI2C,EAAQ,CAER,KAAK,GAAI5C,GAAI,EAAG8gB,EAAI0rF,EAAIhqD,OAAOG,GAAO//C,MAAWke,EAAJ9gB,EAAOA,IACpD,CACI,GAAIkjH,GAAO1W,EAAIhqD,OAAOG,GAAOtwC,KAAKpS,GAAGD,EAErC,IAAIkjH,GAAQA,EAAK96G,MAAQ,IAAM86G,EAAKmG,SAEhC,GAAIo/C,EACJ,CACI,GAAI9mI,GAAQ6qE,EAAI8gB,aAAa3qE,EAAO3iD,EAAGC,EASvC,IAPc,IAAV2C,IAEAsmC,EAAKg6E,EAAKljH,EAAIkjH,EAAKtgH,MACnBumC,EAAK+5E,EAAKjjH,EAAIijH,EAAKrgH,OACnBD,EAAQsgH,EAAKtgH,OAGb++B,GAASA,EAAM0nF,SAEfzmH,GAASsgH,EAAKtgH,UAGlB,CACI,GAAImtD,GAAOt0D,KAAK0sK,WAAWj/H,EAAIC,EAAI,GAAG,EAEtC4mB,GAAK24G,aAAa9lK,EAAOsgH,EAAKrgH,OAAQD,EAAQ,EAAGsgH,EAAKrgH,OAAS,EAAG,GAE9D6/C,GAEAjnD,KAAK+lK,QAAQzxG,GAGjBy8C,EAAIhqD,OAAOG,GAAOypE,OAAOrsH,KAAKgwD,GAE9BntD,EAAQ,OAIhB,CACI,GAAImtD,GAAOt0D,KAAK0sK,WAAWjlD,EAAKljH,EAAIkjH,EAAKtgH,MAAOsgH,EAAKjjH,EAAIijH,EAAKrgH,OAAQ,GAAG,EAEzEktD,GAAK24G,aAAaxlD,EAAKtgH,MAAOsgH,EAAKrgH,OAAQqgH,EAAKtgH,MAAQ,EAAGsgH,EAAKrgH,OAAS,EAAG,GAExE6/C,GAEAjnD,KAAK+lK,QAAQzxG,GAGjBy8C,EAAIhqD,OAAOG,GAAOypE,OAAOrsH,KAAKgwD,KAM9C,MAAOy8C,GAAIhqD,OAAOG,GAAOypE,QAa7B04C,IAAK,SAAUvpJ,GAEX,MAAOA,IAAK,IAahBypJ,IAAK,SAAUzpJ,GAEX,MAAW,IAAJA,GAaXwpJ,KAAM,SAAUxpJ,GAEZ,MAAOA,IAAK,KAahB0pJ,KAAM,SAAU1pJ,GAEZ,MAAOA,IAAK,MAUpB3W,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,YAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM2uH,uBAAuBvT,UAI7ClkJ,IAAK,SAAUC,GAEXvJ,KAAKoyC,MAAM2uH,uBAAuBvT,SAAWjkJ,KAUrDJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,eAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM2uH,uBAAuBrtB,aAI7CpqI,IAAK,SAAUC,GAEXvJ,KAAKoyC,MAAM2uH,uBAAuBrtB,YAAcnqI,KAUxDJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,mBAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM2uH,wBAItBz3J,IAAK,SAAUC,GAEXvJ,KAAKoyC,MAAM2uH,uBAAyBx3J,KAU5CJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,qBAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM6uH,mBAItB33J,IAAK,SAAUC,GAEXvJ,KAAKoyC,MAAM6uH,kBAAoB13J,KAUvCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,gBAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMkgH,cAItBhpJ,IAAK,SAAUC,GAEXvJ,KAAKoyC,MAAMkgH,aAAe/oJ,KAUlCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,gBAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM8uH,cAItB53J,IAAK,SAAUC,GAEXvJ,KAAKoyC,MAAM8uH,aAAe33J,KAUlCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,oBAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM+uH,kBAItB73J,IAAK,SAAUC,GAEXvJ,KAAKoyC,MAAM+uH,iBAAmB53J,KAWtCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,QAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAM8B,QAU1B/qC,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,mBAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMovH,iBAItBl4J,IAAK,SAAUC,GAEXvJ,KAAKoyC,MAAMovH,gBAAkBj4J,KAYrCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,aAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMgwH,WAItB94J,IAAK,SAAUC,GAEXvJ,KAAKoyC,MAAMgwH,UAAY74J,KAW/BJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG/+G,UAAW,SAE/CwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMu+E,OAAOtsH,UA4BjC+9B,OAAO0d,QAAQ8iE,GAAGsqD,YAAc,SAAU/vJ,GAEjCrb,MAAM6kC,QAAQxpB,KAEfA,GAAQA,IAGZnd,KAAKmtK,QAAUhwJ,EACfnd,KAAK+hB,OACL/hB,KAAKgrC,MAAMhrC,KAAKmtK,UAIpB/qI,OAAO0d,QAAQ8iE,GAAGsqD,YAAYrpK,WAK1Bke,KAAM,WAMF/hB,KAAKotK,iBAMLptK,KAAKqtK,mBAMLrtK,KAAKstK,gBASTC,YAAa,SAAUC,EAAK19D,GAExB,GAAI29D,GAAS,SAASz9D,GAClBA,EAAQgqD,eAAiBwT,EAG7BxtK,MAAK0tK,YAAY59D,GAAYnjE,QAAQ8gI,IASzCE,QAAS,SAAUH,EAAK19D,GAEpB,GAAI29D,GAAS,SAASz9D,GAClBA,EAAQiqD,cAAgBuT,EAG5BxtK,MAAK0tK,YAAY59D,GAAYnjE,QAAQ8gI,IASzCG,UAAW,SAAUrkK,EAAOumG,GAExB,GAAI29D,GAAS,SAASz9D,GAClBA,EAAQmqD,OAAS5wJ,EAGrBvJ,MAAK0tK,YAAY59D,GAAYnjE,QAAQ8gI,IASzC/B,YAAa,SAAUxR,EAAUpqD,GAE7B,GAAI29D,GAAS,SAASz9D,GAClBA,EAAQkqD,SAAWA,EAGvBl6J,MAAK0tK,YAAY59D,GAAYnjE,QAAQ8gI,IAUzCC,YAAa,SAAUnhD,GAEnB,GAAIxc,KAEJ,IAAIwc,EACJ,CACUA,YAAgBzqH,SAElByqH,GAAQA,GAGZ,IAAIxvG,GAAO/c,IAQX,OAPAusH,GAAK5/E,QAAQ,SAAShqB,GACd5F,EAAKqwJ,cAAczqJ,IAEnBotF,EAASzrG,KAAKyY,EAAKqwJ,cAAczqJ,MAIlC3iB,KAAK6tK,QAAQ99D,GAKpB,MAAO/vG,MAAKstK,aAWpBQ,gBAAiB,SAAUnrJ,GAEvB,MAAO3iB,MAAKotK,cAAczqJ,IAU9BorJ,SAAU,SAAUC,GAEhB,MAAOhuK,MAAKqtK,gBAAgBW,IAShChjI,MAAO,WAEH,GAAIroB,GAAKpZ,EAAO0kK,EAAMx/C,CACtBw/C,GAAOjuK,KAAKmtK,QACZ1+C,IAEA,KAAK9rG,IAAOsrJ,GAER1kK,EAAQ0kK,EAAKtrJ,GAERuxD,MAAMvxD,EAAM,GAOb3iB,KAAKotK,cAAczqJ,GAAO3iB,KAAK6tK,QAAQtkK,IALvCvJ,KAAKqtK,gBAAgB1qJ,GAAO3iB,KAAKqtK,gBAAgB1qJ,OACjD3iB,KAAKqtK,gBAAgB1qJ,GAAO3iB,KAAKqtK,gBAAgB1qJ,GAAKxH,OAAO5R,IAOjEklH,EAASnqH,KAAKtE,KAAKstK,YAActtK,KAAK6tK,QAAQ7tK,KAAKqtK,mBAW3DQ,QAAS,SAAUjoK,GAEf,GAAIqR,GAAQ8F,CAQZ,OAPA9F,MACA8F,EAAO/Y,UAAUkqK,OAEjBtoK,EAAM+mC,QAAQ,SAASljC,GACnB,MAAO3H,OAAM+B,UAAUS,KAAKb,MAAMwT,EAASnV,MAAM6kC,QAAQl9B,GAAQsT,EAAKtT,IAASA,MAG5EwN,IAmBfmrB,OAAO0d,QAAQ8iE,GAAGurD,WAAa,SAAU/7H,EAAOkvC,GAE5CthF,KAAKoyC,MAAQA,EAChBpyC,KAAKshF,YAAcA,GAIpBl/C,OAAO0d,QAAQ8iE,GAAGurD,WAAWtqK,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAGurD,WAMvEhlK,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGurD,WAAWtqK,UAAW,KAE1DwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMi3H,IAAIrpK,KAAKshF,YAAY,KAI3Ch4E,IAAK,SAAUC,GAEXvJ,KAAKshF,YAAY,GAAKthF,KAAKoyC,MAAMm3H,IAAIhgK,MAU7CJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGurD,WAAWtqK,UAAW,KAE1DwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMi3H,IAAIrpK,KAAKshF,YAAY,KAI3Ch4E,IAAK,SAAUC,GAEXvJ,KAAKshF,YAAY,GAAKthF,KAAKoyC,MAAMm3H,IAAIhgK,MAU7CJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGurD,WAAWtqK,UAAW,MAE1DwF,IAAK,WAED,MAAOrJ,MAAKshF,YAAY,IAI5Bh4E,IAAK,SAAUC,GAEXvJ,KAAKshF,YAAY,GAAK/3E,KAU9BJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGurD,WAAWtqK,UAAW,MAE1DwF,IAAK,WAED,MAAOrJ,MAAKshF,YAAY,IAI5Bh4E,IAAK,SAAUC,GAEXvJ,KAAKshF,YAAY,GAAK/3E,KAoB9B64B,OAAO0d,QAAQ8iE,GAAG4lD,kBAAoB,SAAUp2H,EAAOkvC,GAEnDthF,KAAKoyC,MAAQA,EAChBpyC,KAAKshF,YAAcA,GAIpBl/C,OAAO0d,QAAQ8iE,GAAG4lD,kBAAkB3kK,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAG4lD,kBAM9Er/J,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG4lD,kBAAkB3kK,UAAW,KAEjEwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMk3H,KAAKtpK,KAAKshF,YAAY,KAI5Ch4E,IAAK,SAAUC,GAEXvJ,KAAKshF,YAAY,GAAKthF,KAAKoyC,MAAMo3H,KAAKjgK,MAU9CJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG4lD,kBAAkB3kK,UAAW,KAEjEwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMk3H,KAAKtpK,KAAKshF,YAAY,KAI5Ch4E,IAAK,SAAUC,GAEXvJ,KAAKshF,YAAY,GAAKthF,KAAKoyC,MAAMo3H,KAAKjgK,MAU9CJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG4lD,kBAAkB3kK,UAAW,MAEjEwF,IAAK,WAED,MAAOrJ,MAAKshF,YAAY,IAI5Bh4E,IAAK,SAAUC,GAEXvJ,KAAKshF,YAAY,IAAM/3E,KAU/BJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAG4lD,kBAAkB3kK,UAAW,MAEjEwF,IAAK,WAED,MAAOrJ,MAAKshF,YAAY,IAI5Bh4E,IAAK,SAAUC,GAEXvJ,KAAKshF,YAAY,IAAM/3E,KA4B/B64B,OAAO0d,QAAQ8iE,GAAGxD,KAAO,SAAUjtE,EAAMre,EAAQvvB,EAAGC,EAAG4iH,GAEnDtzF,EAASA,GAAU,KACnBvvB,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACW,mBAAT4iH,KAAwBA,EAAO,GAK1CpnH,KAAKmyC,KAAOA,EAKZnyC,KAAKoyC,MAAQD,EAAKkC,QAAQ1F,GAK1B3uC,KAAK8zB,OAASA,EAKd9zB,KAAKiD,KAAOm/B,OAAO0d,QAAQ8lC,KAK3B5lF,KAAK0mB,OAAS,GAAI0b,QAAOn+B,MAMzBjE,KAAK4W,KAAO,GAAI+3B,IAAGywE,MAAOz3G,UAAY3H,KAAKoyC,MAAMo3H,KAAKjlK,GAAIvE,KAAKoyC,MAAMo3H,KAAKhlK,IAAM4iH,KAAMA,IAEtFpnH,KAAK4W,KAAKvO,OAASrI,KAKnBA,KAAKwkH,SAAW,GAAIpiF,QAAO0d,QAAQ8iE,GAAG4lD,kBAAkBxoK,KAAKoyC,MAAOpyC,KAAK4W,KAAK4tG,UAK9ExkH,KAAKqiD,MAAQ,GAAIjgB,QAAO0d,QAAQ8iE,GAAG4lD,kBAAkBxoK,KAAKoyC,MAAOpyC,KAAK4W,KAAKyrC,OAK3EriD,KAAKgjH,QAAU,GAAI5gF,QAAOn+B,MAO1BjE,KAAKmpK,eAAiB,GAAI/mI,QAAOuW,OAOjC34C,KAAKopK,aAAe,GAAIhnI,QAAOuW,OAK/B34C,KAAKouK,gBAKLpuK,KAAKquK,gBAAiB,EAKtBruK,KAAKsuK,UAAY,KAMjBtuK,KAAKuuK,qBAAsB,EAM3BvuK,KAAKwqK,kBAMLxqK,KAAKyqK,wBAMLzqK,KAAK0qK,mBAML1qK,KAAK2qK,yBAGD72I,IAEA9zB,KAAKwuK,uBAAuB16I,GAExBA,EAAO0kB,QAEPx4C,KAAKmyC,KAAKkC,QAAQ1F,GAAGo3H,QAAQ/lK,QAMzCoiC,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,WAanB4qK,mBAAoB,SAAUt8G,EAAQ93C,EAAUy8B,GAE5C,GAAI5wC,GAAK,EAELisD,GAAW,GAEXjsD,EAAKisD,EAAOjsD,GAEPisD,EAAa,OAElBjsD,EAAKisD,EAAOmC,KAAKpuD,IAGjBA,EAAK,KAEY,OAAbmU,SAEQra,MAAKwqK,eAAetkK,SACpBlG,MAAKyqK,qBAAqBvkK,KAIlClG,KAAKwqK,eAAetkK,GAAMmU,EAC1Bra,KAAKyqK,qBAAqBvkK,GAAM4wC,KAkB5C43H,oBAAqB,SAAU3zF,EAAO1gE,EAAUy8B,GAE3B,OAAbz8B,SAEQra,MAAK0qK,gBAAgB3vF,EAAM5rE,YAC3BnP,MAAK2uK,uBAAuB5zF,EAAM5rE,QAI1CnP,KAAK0qK,gBAAgB3vF,EAAM5rE,MAAQkL,EACnCra,KAAK2qK,sBAAsB5vF,EAAM5rE,MAAQ2nC,IAWjD83H,iBAAkB,WAEd,GAAIz/J,GAAO,CAEPnP,MAAKuuK,sBAELp/J,EAAOnP,KAAKmyC,KAAKkC,QAAQ1F,GAAGm7H,qBAAqB36J,KAGrD,KAAK,GAAIhL,GAAI,EAAGA,EAAInE,KAAKouK,aAAa/pK,OAAQF,IAE1CgL,GAAcnP,KAAKouK,aAAajqK,GAAGgL,IAGvC,OAAOA,IAUX0/J,oBAAqB,SAAUpmJ,GAE3B,GAAItZ,GAAOnP,KAAK4uK,kBAEhB,IAAqB,mBAAVnmJ,GAEP,IAAK,GAAItkB,GAAInE,KAAK4W,KAAKk4I,OAAOzqJ,OAAS,EAAGF,GAAK,EAAGA,IAE9CnE,KAAK4W,KAAKk4I,OAAO3qJ,GAAG81J,cAAgB9qJ,MAKxCsZ,GAAMwxI,cAAgB9qJ,GAa9By7J,kBAAmB,SAAU7vF,EAAOtyD,GAEhC,GAAItZ,GAAOnP,KAAK4uK,kBAEhB,IAAqB,mBAAVnmJ,GAEP,IAAK,GAAItkB,GAAInE,KAAK4W,KAAKk4I,OAAOzqJ,OAAS,EAAGF,GAAK,EAAGA,IAE9CnE,KAAK4W,KAAKk4I,OAAO3qJ,GAAG61J,eAAiBj/E,EAAM5rE,KAC3CnP,KAAK4W,KAAKk4I,OAAO3qJ,GAAG81J,cAAgB9qJ,MAKxCsZ,GAAMuxI,eAAiBj/E,EAAM5rE,KAC7BsZ,EAAMwxI,cAAgB9qJ,GAa9B2/J,eAAgB,SAAUC,EAAYC,EAAWvmJ,GAE7C,GAAqB,mBAAVA,GAEP,IAAK,GAAItkB,GAAInE,KAAK4W,KAAKk4I,OAAOzqJ,OAAS,EAAGF,GAAK,EAAGA,IAE1C4qK,IAEA/uK,KAAK4W,KAAKk4I,OAAO3qJ,GAAG61J,eAAiB,MAGrCgV,IAEAhvK,KAAK4W,KAAKk4I,OAAO3qJ,GAAG81J,cAAgB,UAMxC8U,KAEAtmJ,EAAMuxI,eAAiB,MAGvBgV,IAEAvmJ,EAAMwxI,cAAgB,KAI1B8U,KAEA/uK,KAAKouK,aAAa/pK,OAAS,IAcnCupH,SAAU,SAAU7yC,EAAO1gE,EAAUy8B,EAAiBruB,GAElD,GAAI3mB,MAAM6kC,QAAQo0C,GAEd,IAAK,GAAI52E,GAAI,EAAGA,EAAI42E,EAAM12E,OAAQF,IAEc,KAAxCnE,KAAKouK,aAAa/qK,QAAQ03E,EAAM52E,MAEhCnE,KAAKouK,aAAa9pK,KAAKy2E,EAAM52E,IAEzBkW,GAEAra,KAAK0uK,oBAAoB3zF,EAAM52E,GAAIkW,EAAUy8B,QAOhB,KAArC92C,KAAKouK,aAAa/qK,QAAQ03E,KAE1B/6E,KAAKouK,aAAa9pK,KAAKy2E,GAEnB1gE,GAEAra,KAAK0uK,oBAAoB3zF,EAAO1gE,EAAUy8B,GAKtD,IAAI3nC,GAAOnP,KAAK4uK,kBAEhB,IAAqB,mBAAVnmJ,GAEP,IAAK,GAAItkB,GAAInE,KAAK4W,KAAKk4I,OAAOzqJ,OAAS,EAAGF,GAAK,EAAGA,IAE9CnE,KAAK4W,KAAKk4I,OAAO3qJ,GAAG81J,cAAgB9qJ,MAKxCsZ,GAAMwxI,cAAgB9qJ,GAU9B2iJ,mBAAoB,WAEhB9xJ,KAAK4W,KAAKk7I,sBAUdQ,aAAc,SAAU/iH,GAEpBvvC,KAAK4W,KAAK07I,aAAa/iH,IAY3B6hH,WAAY,SAAU/uG,EAAO+7D,EAAQC,GAEjCr+G,KAAK4W,KAAKw6I,WAAW/uG,GAAQriD,KAAKoyC,MAAMo3H,KAAKprD,GAASp+G,KAAKoyC,MAAMo3H,KAAKnrD,MAS1E8zC,aAAc,WAEVnyJ,KAAK4W,KAAKu7I,gBASd8c,gBAAiB,WAEbjvK,KAAK4W,KAAKwtG,gBAAkB,GAShC8qD,gBAAiB,WAEblvK,KAAK4W,KAAK4tG,SAAS,GAAK,EACxBxkH,KAAK4W,KAAK4tG,SAAS,GAAK,GAS5B2qD,eAAgB,WAEZnvK,KAAK4W,KAAK64I,QAAU,EACpBzvJ,KAAK4W,KAAK84I,eAAiB,GAW/BxB,aAAc,SAAUpmH,EAAK4sG,GAEzB,MAAO10I,MAAK4W,KAAKs3I,aAAapmH,EAAK4sG,IAWvC4c,aAAc,SAAUxpH,EAAKszB,GAEzB,MAAOp7D,MAAK4W,KAAK06I,aAAaxpH,EAAKszB,IAUvCg0G,WAAY,SAAUr4G,GAElB/2D,KAAK4W,KAAKwtG,gBAAkBpkH,KAAKoyC,MAAMm3H,KAAKxyG,IAUhDs4G,YAAa,SAAUt4G,GAEnB/2D,KAAK4W,KAAKwtG,gBAAkBpkH,KAAKoyC,MAAMm3H,IAAIxyG,IAW/Cu4G,YAAa,SAAUv4G,GAEnB,GAAIltB,GAAY7pC,KAAKoyC,MAAMo3H,MAAMzyG,GAC7BzwD,EAAQtG,KAAK4W,KAAKtQ,MAAQpE,KAAKC,GAAK,CAExCnC,MAAK4W,KAAK4tG,SAAS,GAAK36E,EAAY3nC,KAAKqE,IAAID,GAC7CtG,KAAK4W,KAAK4tG,SAAS,GAAK36E,EAAY3nC,KAAKsE,IAAIF,IAWjDipK,aAAc,SAAUx4G,GAEpB,GAAIltB,GAAY7pC,KAAKoyC,MAAMo3H,MAAMzyG,GAC7BzwD,EAAQtG,KAAK4W,KAAKtQ,MAAQpE,KAAKC,GAAK,CAExCnC,MAAK4W,KAAK4tG,SAAS,KAAO36E,EAAY3nC,KAAKqE,IAAID,IAC/CtG,KAAK4W,KAAK4tG,SAAS,KAAO36E,EAAY3nC,KAAKsE,IAAIF,KAWnDkpK,OAAQ,SAAUz4G,GAEd,GAAIltB,GAAY7pC,KAAKoyC,MAAMo3H,MAAMzyG,GAC7BzwD,EAAQtG,KAAK4W,KAAKtQ,MAAQpE,KAAKC,GAAK,CAExCnC,MAAK4W,KAAKyrC,MAAM,IAAMxY,EAAY3nC,KAAKqE,IAAID,GAC3CtG,KAAK4W,KAAKyrC,MAAM,IAAMxY,EAAY3nC,KAAKsE,IAAIF,IAW/C4qB,QAAS,SAAU6lC,GAEf,GAAIltB,GAAY7pC,KAAKoyC,MAAMo3H,MAAMzyG,GAC7BzwD,EAAQtG,KAAK4W,KAAKtQ,MAAQpE,KAAKC,GAAK,CAExCnC,MAAK4W,KAAKyrC,MAAM,IAAMxY,EAAY3nC,KAAKqE,IAAID,GAC3CtG,KAAK4W,KAAKyrC,MAAM,IAAMxY,EAAY3nC,KAAKsE,IAAIF,IAW/CmpK,SAAU,SAAU14G,GAEhB/2D,KAAK4W,KAAK4tG,SAAS,GAAKxkH,KAAKoyC,MAAMo3H,MAAMzyG,IAW7C24G,UAAW,SAAU34G,GAEjB/2D,KAAK4W,KAAK4tG,SAAS,GAAKxkH,KAAKoyC,MAAMo3H,KAAKzyG,IAW5ClV,OAAQ,SAAUkV,GAEd/2D,KAAK4W,KAAK4tG,SAAS,GAAKxkH,KAAKoyC,MAAMo3H,MAAMzyG,IAW7CjV,SAAU,SAAUiV,GAEhB/2D,KAAK4W,KAAK4tG,SAAS,GAAKxkH,KAAKoyC,MAAMo3H,KAAKzyG,IAU5C3f,UAAW,WAEHp3C,KAAKquK,iBAELruK,KAAK6lF,kBACL7lF,KAAKquK,gBAAiB,IAW9BjxH,WAAY,WAERp9C,KAAK8zB,OAAOvvB,EAAIvE,KAAKoyC,MAAMk3H,KAAKtpK,KAAK4W,KAAKjP,SAAS,IACnD3H,KAAK8zB,OAAOtvB,EAAIxE,KAAKoyC,MAAMk3H,KAAKtpK,KAAK4W,KAAKjP,SAAS,IAE9C3H,KAAKovJ,gBAENpvJ,KAAK8zB,OAAO/rB,SAAW/H,KAAK4W,KAAKtQ,QAczC+hB,MAAO,SAAU9jB,EAAGC,EAAGmrK,EAAcC,GAEL,mBAAjBD,KAAgCA,GAAe,GACjC,mBAAdC,KAA6BA,GAAY,GAEpD5vK,KAAKmyJ,eACLnyJ,KAAKkvK,kBACLlvK,KAAKivK,kBAEDU,GAEA3vK,KAAKmvK,iBAGLS,IAEA5vK,KAAKonH,KAAO,GAGhBpnH,KAAKuE,EAAIA,EACTvE,KAAKwE,EAAIA,GASbyiD,WAAY,WAER,GAAIjnD,KAAKmyC,KAAKkC,QAAQ1F,GAAGs7H,UAErB,IAAK,GAAI9lK,GAAI,EAAGA,EAAInE,KAAKmyC,KAAKkC,QAAQ1F,GAAGs7H,UAAU5lK,OAAQF,IAEnDnE,KAAKmyC,KAAKkC,QAAQ1F,GAAGs7H,UAAU9lK,KAAOnE,MAEtCA,KAAKmyC,KAAKkC,QAAQ1F,GAAGs7H,UAAUp9J,OAAO1I,EAAG,EAKjDnE,MAAK4W,KAAKw7B,QAAUpyC,KAAKmyC,KAAKkC,QAAQ1F,GAAGyD,OAEzCpyC,KAAKmyC,KAAKkC,QAAQ1F,GAAGo3H,QAAQ/lK,OAUrC6lF,gBAAiB,WAET7lF,KAAK4W,KAAKw7B,QAAUpyC,KAAKmyC,KAAKkC,QAAQ1F,GAAGyD,OAEzCpyC,KAAKmyC,KAAKkC,QAAQ1F,GAAGw7H,mBAAmBnqK,OAUhDkM,QAAS,WAELlM,KAAK6lF,kBAEL7lF,KAAK6vK,cAEL7vK,KAAKwqK,kBACLxqK,KAAKyqK,wBACLzqK,KAAK0qK,mBACL1qK,KAAK2qK,yBAED3qK,KAAKsuK,WAELtuK,KAAKsuK,UAAUpiK,UAGnBlM,KAAKsuK,UAAY,KACjBtuK,KAAK8zB,OAAOwgC,KAAO,KACnBt0D,KAAK8zB,OAAS,MASlB+7I,YAAa,WAIT,IAFA,GAAI1rK,GAAInE,KAAK4W,KAAKk4I,OAAOzqJ,OAElBF,KAEHnE,KAAK4W,KAAKo6I,YAAYhxJ,KAAK4W,KAAKk4I,OAAO3qJ,GAG3CnE,MAAK8vK,gBAeT/e,SAAU,SAAUtoI,EAAOmM,EAASC,EAAS9sB,GASzC,MAPuB,mBAAZ6sB,KAA2BA,EAAU,GACzB,mBAAZC,KAA2BA,EAAU,GACxB,mBAAb9sB,KAA4BA,EAAW,GAElD/H,KAAK4W,KAAKm6I,SAAStoI,GAAQzoB,KAAKoyC,MAAMo3H,KAAK50I,GAAU50B,KAAKoyC,MAAMo3H,KAAK30I,IAAW9sB,GAChF/H,KAAK8vK,eAEErnJ,GAcXsnJ,UAAW,SAAUtoK,EAAQmtB,EAASC,EAAS9sB,GAE3C,GAAI0gB,GAAQ,GAAIkmB,IAAG3H,OAAOhnC,KAAKoyC,MAAMm3H,IAAI9hK,GAEzC,OAAOzH,MAAK+wJ,SAAStoI,EAAOmM,EAASC,EAAS9sB,IAelDklK,aAAc,SAAU9lK,EAAOC,EAAQwtB,EAASC,EAAS9sB,GAErD,GAAI0gB,GAAQ,GAAIkmB,IAAGznC,UAAUlH,KAAKoyC,MAAMm3H,IAAIpiK,GAAQnH,KAAKoyC,MAAMm3H,IAAIniK,GAEnE,OAAOpH,MAAK+wJ,SAAStoI,EAAOmM,EAASC,EAAS9sB,IAalDioK,SAAU,SAAUp7I,EAASC,EAAS9sB,GAElC,GAAI0gB,GAAQ,GAAIkmB,IAAG4mH,KAEnB,OAAOv1J,MAAK+wJ,SAAStoI,EAAOmM,EAASC,EAAS9sB,IAalDkoK,YAAa,SAAUr7I,EAASC,EAAS9sB,GAErC,GAAI0gB,GAAQ,GAAIkmB,IAAGwgD,QAEnB;MAAOnvF,MAAK+wJ,SAAStoI,EAAOmM,EAASC,EAAS9sB,IAgBlDmoK,QAAS,SAAU7rK,EAAQuwB,EAASC,EAAS9sB,GAEzC,GAAI0gB,GAAQ,GAAIkmB,IAAG/B,KAAK5sC,KAAKoyC,MAAMm3H,IAAIllK,GAEvC,OAAOrE,MAAK+wJ,SAAStoI,EAAOmM,EAASC,EAAS9sB,IAgBlDooK,WAAY,SAAU9rK,EAAQoD,EAAQmtB,EAASC,EAAS9sB,GAEpD,GAAI0gB,GAAQ,GAAIkmB,IAAGymH,QAAQp1J,KAAKoyC,MAAMm3H,IAAIllK,GAASrE,KAAKoyC,MAAMm3H,IAAI9hK,GAElE,OAAOzH,MAAK+wJ,SAAStoI,EAAOmM,EAASC,EAAS9sB,IAkBlD4kK,WAAY,SAAUh/I,EAAS/pB,GAE3B+pB,EAAUA,MAEL7rB,MAAM6kC,QAAQ/iC,KAEfA,EAAS9B,MAAM+B,UAAUC,MAAMC,KAAKC,UAAW,GAGnD,IAAI6tC,KAGJ,IAAsB,IAAlBjuC,EAAOS,QAAgBvC,MAAM6kC,QAAQ/iC,EAAO,IAE5CiuC,EAAOjuC,EAAO,GAAGE,MAAM,OAEtB,IAAIhC,MAAM6kC,QAAQ/iC,EAAO,IAE1BiuC,EAAOjuC,EAAOE,YAEb,IAAyB,gBAAdF,GAAO,GAGnB,IAAK,GAAIO,GAAI,EAAGm3B,EAAM13B,EAAOS,OAAYi3B,EAAJn3B,EAASA,GAAK,EAE/C0tC,EAAKvtC,MAAMV,EAAOO,GAAIP,EAAOO,EAAI,IAKzC,IAAI4S,GAAM86B,EAAKxtC,OAAS,CAEpBwtC,GAAK96B,GAAK,KAAO86B,EAAK,GAAG,IAAMA,EAAK96B,GAAK,KAAO86B,EAAK,GAAG,IAExDA,EAAK/4B,KAIT,KAAK,GAAI5U,GAAI,EAAGA,EAAI2tC,EAAKxtC,OAAQH,IAE7B2tC,EAAK3tC,GAAG,GAAKlE,KAAKoyC,MAAMo3H,KAAK33H,EAAK3tC,GAAG,IACrC2tC,EAAK3tC,GAAG,GAAKlE,KAAKoyC,MAAMo3H,KAAK33H,EAAK3tC,GAAG,GAGzC,IAAI+S,GAASjX,KAAK4W,KAAK26I,YAAY1/G,EAAMlkB,EAIzC,OAFA3tB,MAAK8vK,eAEE74J,GAWX+5I,YAAa,SAAUvoI,GAEzB,GAAIxR,GAASjX,KAAK4W,KAAKo6I,YAAYvoI,EAI7B,OAFNzoB,MAAK8vK,eAEQ74J,GAYXm5J,UAAW,SAAU3oK,EAAQmtB,EAASC,EAAS9sB,GAI3C,MAFA/H,MAAK6vK,cAEE7vK,KAAK+vK,UAAUtoK,EAAQmtB,EAASC,EAAS9sB,IAgBpDsoK,aAAc,SAAUlpK,EAAOC,EAAQwtB,EAASC,EAAS9sB,GAOrD,MALqB,mBAAVZ,KAAyBA,EAAQ,IACtB,mBAAXC,KAA0BA,EAAS,IAE9CpH,KAAK6vK,cAEE7vK,KAAKitK,aAAa9lK,EAAOC,EAAQwtB,EAASC,EAAS9sB,IAa9DymK,uBAAwB,SAAU16I,GAM9B,MAJsB,mBAAXA,KAA0BA,EAAS9zB,KAAK8zB,QAEnD9zB,KAAK6vK,cAEE7vK,KAAKitK,aAAan5I,EAAO3sB,MAAO2sB,EAAO1sB,OAAQ,EAAG,EAAG0sB,EAAO/rB,WAYvE2jK,YAAa,SAAUxR,EAAUzxI,GAE7B,GAAqB,mBAAVA,GAEP,IAAK,GAAItkB,GAAInE,KAAK4W,KAAKk4I,OAAOzqJ,OAAS,EAAGF,GAAK,EAAGA,IAE9CnE,KAAK4W,KAAKk4I,OAAO3qJ,GAAG+1J,SAAWA,MAKnCzxI,GAAMyxI,SAAWA,GAUzB4V,aAAc,WAEN9vK,KAAKsuK,WAELtuK,KAAKsuK,UAAU/vF,QAavB+xF,iBAAkB,SAAU3tJ,EAAKwvC,GAM7B,IAAK,GAJDv7C,GAAO5W,KAAKmyC,KAAK0B,MAAMg8D,eAAeltF,EAAKwvC,GAC3Co+G,KAGKpsK,EAAI,EAAGA,EAAIyS,EAAKvS,OAAQF,IACjC,CACI,GAAIqsK,GAAc55J,EAAKzS,GACnBssK,EAAkBzwK,KAAK0wK,WAAWF,EAGtCD,GAAgBC,EAAYl6I,OAAOykD,OAASw1F,EAAgBC,EAAYl6I,OAAOykD,WAC/Ew1F,EAAgBC,EAAYl6I,OAAOykD,OAASw1F,EAAgBC,EAAYl6I,OAAOykD,OAAO5/D,OAAOs1J,GAGzFD,EAAY1gE,aAEZygE,EAAgBC,EAAY1gE,YAAc2gE,GAOlD,MAHAzwK,MAAK4W,KAAKwtI,iBAAkB,EAC5BpkJ,KAAK8vK,eAEES,GAWXG,WAAY,SAAUF,GAElB,GAAIG,KAEJ,IAAIH,EAAYx5G,OAChB,CACI,GAAIvuC,GAAQ,GAAIkmB,IAAG3H,OAAOhnC,KAAKoyC,MAAMm3H,IAAIiH,EAAYx5G,OAAOvvD,QAC5DghB,GAAMuxI,eAAiBwW,EAAYl6I,OAAOs6I,aAC1CnoJ,EAAMwxI,cAAgBuW,EAAYl6I,OAAOu6I,SACzCpoJ,EAAM0xI,OAASqW,EAAYM,QAE3B,IAAIpqJ,GAASioB,GAAGkgG,KAAKxiI,QACrBqa,GAAO,GAAK1mB,KAAKoyC,MAAMo3H,KAAKgH,EAAYx5G,OAAOrvD,SAAS,GAAK3H,KAAK8zB,OAAO3sB,MAAM,GAC/Euf,EAAO,GAAK1mB,KAAKoyC,MAAMo3H,KAAKgH,EAAYx5G,OAAOrvD,SAAS,GAAK3H,KAAK8zB,OAAO1sB,OAAO,GAEhFpH,KAAK4W,KAAKm6I,SAAStoI,EAAO/B,GAC1BiqJ,EAAgBrsK,KAAKmkB,OAOrB,KAAK,GAHDsoJ,GAAWP,EAAYO,SACvBrf,EAAK/iH,GAAGkgG,KAAKxiI,SAERlI,EAAI,EAAGA,EAAI4sK,EAAS1sK,OAAQF,IACrC,CAII,IAAK,GAHD2qJ,GAASiiB,EAAS5sK,GAClBgvB,KAEKqX,EAAI,EAAGA,EAAIskH,EAAOzqJ,OAAQmmC,GAAK,EAEpCrX,EAAS7uB,MAAOtE,KAAKoyC,MAAMo3H,KAAK1a,EAAOtkH,IAAKxqC,KAAKoyC,MAAMo3H,KAAK1a,EAAOtkH,EAAI,KAM3E,KAAK,GAHD/hB,GAAQ,GAAIkmB,IAAG6mG,OAAOriH,GAGjBtuB,EAAI,EAAGA,IAAM4jB,EAAM0K,SAAS9uB,OAAQQ,IAC7C,CACI,GAAIib,GAAI2I,EAAM0K,SAAStuB,EACvB8pC,IAAGkgG,KAAKkB,IAAIjwH,EAAGA,EAAG2I,EAAMkpI,cAG5BhjH,GAAGkgG,KAAKzoI,MAAMsrJ,EAAIjpI,EAAMkpI,aAAc,GAEtCD,EAAG,IAAM1xJ,KAAKoyC,MAAMo3H,KAAKxpK,KAAK8zB,OAAO3sB,MAAQ,GAC7CuqJ,EAAG,IAAM1xJ,KAAKoyC,MAAMo3H,KAAKxpK,KAAK8zB,OAAO1sB,OAAS,GAE9CqhB,EAAMmpI,kBACNnpI,EAAMopI,qBACNppI,EAAMqoI,uBAENroI,EAAMuxI,eAAiBwW,EAAYl6I,OAAOs6I,aAC1CnoJ,EAAMwxI,cAAgBuW,EAAYl6I,OAAOu6I,SACzCpoJ,EAAM0xI,OAASqW,EAAYM,SAE3B9wK,KAAK4W,KAAKm6I,SAAStoI,EAAOipI,GAE1Bif,EAAgBrsK,KAAKmkB,GAI7B,MAAOkoJ,IAYXK,YAAa,SAAUruJ,EAAKwvC,GAOxB,IAAK,GALDv7C,GAAO5W,KAAKmyC,KAAK0B,MAAMg8D,eAAeltF,EAAKwvC,GAG3Cu/F,EAAK/iH,GAAGkgG,KAAKxiI,SAERlI,EAAI,EAAGA,EAAIyS,EAAKvS,OAAQF,IACjC,CAGI,IAAK,GAFDgvB,MAEKqX,EAAI,EAAGA,EAAI5zB,EAAKzS,GAAGskB,MAAMpkB,OAAQmmC,GAAK,EAE3CrX,EAAS7uB,MAAOtE,KAAKoyC,MAAMo3H,KAAK5yJ,EAAKzS,GAAGskB,MAAM+hB,IAAKxqC,KAAKoyC,MAAMo3H,KAAK5yJ,EAAKzS,GAAGskB,MAAM+hB,EAAI,KAMzF,KAAK,GAHDjlC,GAAI,GAAIopC,IAAG6mG,OAAOriH,GAGbtuB,EAAI,EAAGA,IAAMU,EAAE4tB,SAAS9uB,OAAQQ,IACzC,CACI,GAAIib,GAAIva,EAAE4tB,SAAStuB,EACnB8pC,IAAGkgG,KAAKkB,IAAIjwH,EAAGA,EAAGva,EAAEosJ,cAGxBhjH,GAAGkgG,KAAKzoI,MAAMsrJ,EAAInsJ,EAAEosJ,aAAc,GAElCD,EAAG,IAAM1xJ,KAAKoyC,MAAMo3H,KAAKxpK,KAAK8zB,OAAO3sB,MAAQ,GAC7CuqJ,EAAG,IAAM1xJ,KAAKoyC,MAAMo3H,KAAKxpK,KAAK8zB,OAAO1sB,OAAS,GAE9C7B,EAAEqsJ,kBACFrsJ,EAAEssJ,qBACFtsJ,EAAEurJ,uBAEF9wJ,KAAK4W,KAAKm6I,SAASxrJ,EAAGmsJ,GAM1B,MAHA1xJ,MAAK4W,KAAKwtI,iBAAkB,EAC5BpkJ,KAAK8vK,gBAEE,IAMf1tI,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAGxD,KAQjEh9E,OAAO0d,QAAQ8iE,GAAGxD,KAAKuwC,QAAU,EAQjCvtH,OAAO0d,QAAQ8iE,GAAGxD,KAAKmxB,OAAS,EAQhCnuG,OAAO0d,QAAQ8iE,GAAGxD,KAAKoxB,UAAY,EAMnCrnI,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,UAEpDwF,IAAK,WAED,MAAQrJ,MAAK4W,KAAK3T,OAASm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKmxB,QAItDjnI,IAAK,SAAUC,GAEPA,GAASvJ,KAAK4W,KAAK3T,OAASm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKmxB,QAEnDvwI,KAAK4W,KAAK3T,KAAOm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKmxB,OACxCvwI,KAAKonH,KAAO,GAEN79G,GAASvJ,KAAK4W,KAAK3T,OAASm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKmxB,SAEzDvwI,KAAK4W,KAAK3T,KAAOm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKuwC,QAEtB,IAAd3vJ,KAAKonH,OAELpnH,KAAKonH,KAAO,OAY5Bj+G,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,WAEpDwF,IAAK,WAED,MAAQrJ,MAAK4W,KAAK3T,OAASm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKuwC,SAItDrmJ,IAAK,SAAUC,GAEPA,GAASvJ,KAAK4W,KAAK3T,OAASm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKuwC,SAEnD3vJ,KAAK4W,KAAK3T,KAAOm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKuwC,QAEtB,IAAd3vJ,KAAKonH,OAELpnH,KAAKonH,KAAO,IAGV79G,GAASvJ,KAAK4W,KAAK3T,OAASm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKuwC,UAEzD3vJ,KAAK4W,KAAK3T,KAAOm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKmxB,OACxCvwI,KAAKonH,KAAO,MAWxBj+G,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,aAEpDwF,IAAK,WAED,MAAQrJ,MAAK4W,KAAK3T,OAASm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKoxB,WAItDlnI,IAAK,SAAUC,GAEPA,GAASvJ,KAAK4W,KAAK3T,OAASm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKoxB,WAEnDxwI,KAAK4W,KAAK3T,KAAOm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKoxB,UACxCxwI,KAAKonH,KAAO,GAEN79G,GAASvJ,KAAK4W,KAAK3T,OAASm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKoxB,YAEzDxwI,KAAK4W,KAAK3T,KAAOm/B,OAAO0d,QAAQ8iE,GAAGxD,KAAKmxB,OACxCvwI,KAAKonH,KAAO,MAWxBj+G,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,cAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAKg5I,YAIrBtmJ,IAAK,SAAUC,GAEPA,IAAUvJ,KAAK4W,KAAKg5I,aAEpB5vJ,KAAK4W,KAAKg5I,WAAarmJ,MAenCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,SAEpDwF,IAAK,WAED,MAAO+4B,QAAOlgC,KAAKwjF,UAAUtjD,OAAOlgC,KAAKqnC,SAASvpC,KAAK4W,KAAKtQ,SAIhEgD,IAAK,SAASC,GAEVvJ,KAAK4W,KAAKtQ,MAAQ87B,OAAOlgC,KAAKkmC,SAAShG,OAAOlgC,KAAKwjF,UAAUn8E,OAWrEJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,kBAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAK84I,gBAIrBpmJ,IAAK,SAAUC,GAEXvJ,KAAK4W,KAAK84I,eAAiBnmJ,KAUnCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,gBAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAK00I,cAIrBhiJ,IAAK,SAAUC,GAEXvJ,KAAK4W,KAAK00I,aAAe/hJ,KAUjCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,mBAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAKwtG,iBAIrB96G,IAAK,SAAUC,GAEXvJ,KAAK4W,KAAKwtG,gBAAkB76G,KAWpCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,WAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAK64I,SAIrBnmJ,IAAK,SAAUC,GAEXvJ,KAAK4W,KAAK64I,QAAUlmJ,KAU5BJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,iBAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAKw4I,eAIrB9lJ,IAAK,SAAUC,GAEPA,IAAUvJ,KAAK4W,KAAKw4I,gBAEpBpvJ,KAAK4W,KAAKw4I,cAAgB7lJ,MAWtCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,WAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAKs4I,SAIrB5lJ,IAAK,SAAUC,GAEXvJ,KAAK4W,KAAKs4I,QAAU3lJ,KAU5BJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,QAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAKwwG,MAIrB99G,IAAK,SAAUC,GAEPA,IAAUvJ,KAAK4W,KAAKwwG,OAEpBpnH,KAAK4W,KAAKwwG,KAAO79G,EACjBvJ,KAAK4W,KAAKy5I,2BAWtBlnJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,eAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAK3T,MAIrBqG,IAAK,SAAUC,GAEPA,IAAUvJ,KAAK4W,KAAK3T,OAEpBjD,KAAK4W,KAAK3T,KAAOsG,MAc7BJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,YAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAKtQ,OAIrBgD,IAAK,SAASC,GAEVvJ,KAAK4W,KAAKtQ,MAAQiD,KAU1BJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,mBAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAKm5I,iBAIrBzmJ,IAAK,SAAUC,GAEXvJ,KAAK4W,KAAKm5I,gBAAkBxmJ,KAUpCJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,KAEpDwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMk3H,KAAKtpK,KAAK4W,KAAKjP,SAAS,KAI9C2B,IAAK,SAAUC,GAEXvJ,KAAK4W,KAAKjP,SAAS,GAAK3H,KAAKoyC,MAAMo3H,KAAKjgK,MAUhDJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,KAEpDwF,IAAK,WAED,MAAOrJ,MAAKoyC,MAAMk3H,KAAKtpK,KAAK4W,KAAKjP,SAAS,KAI9C2B,IAAK,SAAUC,GAEXvJ,KAAK4W,KAAKjP,SAAS,GAAK3H,KAAKoyC,MAAMo3H,KAAKjgK,MAWhDJ,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,MAEpDwF,IAAK,WAED,MAAOrJ,MAAK4W,KAAK1Q,MAUzBiD,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,SAEpDwF,IAAK,WAED,MAA2B,QAAnBrJ,KAAKsuK,WAIjBhlK,IAAK,SAAUC,GAEPA,IAAUvJ,KAAKsuK,UAGftuK,KAAKsuK,UAAY,GAAIlsI,QAAO0d,QAAQ8iE,GAAGquD,UAAUjxK,KAAKmyC,KAAMnyC,KAAK4W,OAE3DrN,GAASvJ,KAAKsuK,YAEpBtuK,KAAKsuK,UAAUpiK,UACflM,KAAKsuK,UAAY,SAgB7BnlK,OAAOC,eAAeg5B,OAAO0d,QAAQ8iE,GAAGxD,KAAKv7G,UAAW,sBAEpDwF,IAAK,WAED,MAAOrJ,MAAKuuK,qBAIhBjlK,IAAK,SAAUC,GAEPA,IAAUvJ,KAAKuuK,qBAEfvuK,KAAKuuK,qBAAsB,EAC3BvuK,KAAK6uK,wBAECtlK,GAASvJ,KAAKuuK,sBAEpBvuK,KAAKuuK,qBAAsB,EAC3BvuK,KAAK6uK,0BA0BjBzsI,OAAO0d,QAAQ8iE,GAAGquD,UAAY,SAAS9+H,EAAMmiB,EAAM48G,GAE/C9uI,OAAOsd,MAAM37C,KAAK/D,KAAMmyC,EAMxB,IAAIg/H,IACAC,oBAAqB,GACrBC,eAAe,EACfr8J,UAAW,EACXhN,MAAO,GAGXhI,MAAKkxK,SAAW9uI,OAAOgC,MAAMmC,OAAO4qI,EAAiBD,GAKrDlxK,KAAKsxK,IAAMtxK,KAAKkxK,SAASE,oBACzBpxK,KAAKsxK,IAAM,GAAKtxK,KAAKsxK,IAKrBtxK,KAAKs0D,KAAOA,EAKZt0D,KAAKqT,OAAS,GAAI+uB,QAAO7Z,SAAS4pB,GAElCnyC,KAAKqT,OAAOrL,MAAQhI,KAAKkxK,SAASlpK,MAElChI,KAAKgpC,IAAIhpC,KAAKqT,QAEdrT,KAAKu+E,QAITn8C,OAAO0d,QAAQ8iE,GAAGquD,UAAUptK,UAAYsF,OAAOkD,OAAO+1B,OAAOsd,MAAM77C,WACnEu+B,OAAO0d,QAAQ8iE,GAAGquD,UAAUptK,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAGquD,UAEtE7uI,OAAOgC,MAAMmC,OAAOnE,OAAO0d,QAAQ8iE,GAAGquD,UAAUptK,WAO5C2V,OAAQ,WAEJxZ,KAAKuxK,yBASTA,sBAAuB,WAKnB,MAHAvxK,MAAK2H,SAASpD,EAAIvE,KAAKs0D,KAAK3sD,SAAS,GAAK3H,KAAKsxK,IAC/CtxK,KAAK2H,SAASnD,EAAIxE,KAAKs0D,KAAK3sD,SAAS,GAAK3H,KAAKsxK,IAExCtxK,KAAK+H,SAAW/H,KAAKs0D,KAAKhuD,OASrCi4E,KAAM,WAEF,GAAIj4E,GAAOmG,EAAO2Z,EAAOjiB,EAAGU,EAAGmoB,EAAWqjG,EAAIr0G,EAAK0K,EAAQoN,EAAQhU,EAAG+J,EAAO2nJ,EAAMC,EAAIC,CAQvF,IAPA11J,EAAMhc,KAAKs0D,KACXxgC,EAAS9zB,KAAKqT,OACdygB,EAAOhE,QACP1J,EAAQxO,SAAS5X,KAAK2xK,kBAAmB,IACzC3kJ,EAAY,SACZqjG,EAAKrwH,KAAKgV,UAENgH,YAAe2yB,IAAGywE,MAAQpjG,EAAI8yI,OAAOzqJ,OACzC,CACI,GAAIogC,GAAIzoB,EAAI8yI,OAAOzqJ,MAInB,KAFAF,EAAI,EAEGA,IAAMsgC,GACb,CAOI,GANAh4B,EAAQuP,EAAI8yI,OAAO3qJ,GACnBuiB,EAAS1K,EAAI+yI,aAAa5qJ,GAC1BmC,EAAQ0V,EAAIgzI,YAAY7qJ,GACxBuiB,EAASA,GAAU,EACnBpgB,EAAQA,GAAS,EAEbmG,YAAiBkiC,IAAG3H,OAEpBhnC,KAAK0xC,WAAW5d,EAAQpN,EAAO,GAAK1mB,KAAKsxK,IAAK5qJ,EAAO,GAAK1mB,KAAKsxK,IAAKhrK,EAAOmG,EAAMhF,OAASzH,KAAKsxK,IAAKlrJ,EAAOiqG,OAE1G,IAAI5jH,YAAiBkiC,IAAG6mG,OAC7B,CAII,IAHA3rH,KACA2nJ,EAAO7iI,GAAGkgG,KAAKxiI,SAEVxH,EAAI4sK,EAAK,EAAGC,EAAQjlK,EAAM0mB,SAAS9uB,OAAaqtK,GAAL,EAAkBA,EAALD,EAAaA,EAAKC,EAAO7sK,EAAS6sK,GAAL,IAAeD,IAAOA,EAE5G3xJ,EAAIrT,EAAM0mB,SAAStuB,GACnB8pC,GAAGkgG,KAAKxoI,OAAOmrK,EAAM1xJ,EAAGxZ,GACxBujB,EAAMvlB,OAAOktK,EAAK,GAAK9qJ,EAAO,IAAM1mB,KAAKsxK,MAAOE,EAAK,GAAK9qJ,EAAO,IAAM1mB,KAAKsxK,KAGhFtxK,MAAK4xK,WAAW99I,EAAQjK,EAAOpd,EAAM2d,UAAW4C,EAAW5G,EAAOiqG,EAAIrwH,KAAKkxK,SAASG,eAAgB3qJ,EAAO,GAAK1mB,KAAKsxK,KAAM5qJ,EAAO,GAAK1mB,KAAKsxK,UAEvI7kK,aAAiBkiC,IAAG4mH,MAEzBv1J,KAAK6xK,UAAU/9I,EAAQpN,EAAO,GAAK1mB,KAAKsxK,KAAM5qJ,EAAO,GAAK1mB,KAAKsxK,IAAKlrJ,EAAO4G,EAAgB,EAALqjG,EAAa,GAALA,EAAc,GAALA,EAAoB,IAAXrwH,KAAKsxK,IAAWhrK,GAE3HmG,YAAiBkiC,IAAG/B,KAEzB5sC,KAAK8xK,SAASh+I,EAAQrnB,EAAMpI,OAASrE,KAAKsxK,IAAKtkJ,EAAWqjG,GAErD5jH,YAAiBkiC,IAAGznC,WAEzBlH,KAAK+xK,cAAcj+I,EAAQpN,EAAO,GAAK1mB,KAAKsxK,KAAM5qJ,EAAO,GAAK1mB,KAAKsxK,IAAKhrK,EAAOmG,EAAMtF,MAAQnH,KAAKsxK,IAAK7kK,EAAMrF,OAASpH,KAAKsxK,IAAKtkJ,EAAW5G,EAAOiqG,EAGtJlsH,QAWZ4tK,cAAe,SAASnoJ,EAAGrlB,EAAGC,EAAG8B,EAAO+e,EAAGoV,EAAGrU,EAAOqD,EAAWzU,GAEnC,mBAAdA,KAA6BA,EAAY,GAC/B,mBAAVoR,KAAyBA,EAAQ,GAE5CwD,EAAEulB,UAAUn6B,EAAWoR,EAAO,GAC9BwD,EAAEynB,UAAU5nB,GACZG,EAAE4nB,SAASjtC,EAAI8gB,EAAI,EAAG7gB,EAAIi2B,EAAI,EAAGpV,EAAGoV,IASxCiX,WAAY,SAAS9nB,EAAGrlB,EAAGC,EAAG8B,EAAOmB,EAAQ2e,EAAOpR,GAEvB,mBAAdA,KAA6BA,EAAY,GAC/B,mBAAVoR,KAAyBA,EAAQ,UAC5CwD,EAAEulB,UAAUn6B,EAAW,EAAU,GACjC4U,EAAEynB,UAAUjrB,EAAO,GACnBwD,EAAE8nB,WAAWntC,EAAGC,EAAW,GAAPiD,GACpBmiB,EAAE2nB,UACF3nB,EAAEwQ,OAAO71B,EAAGC,GACZolB,EAAEyQ,OAAO91B,EAAIkD,EAASvF,KAAKqE,KAAKD,GAAQ9B,EAAIiD,EAASvF,KAAKsE,KAAKF,KASnEwrK,SAAU,SAASloJ,EAAG0R,EAAKlV,EAAOpR,GAEL,mBAAdA,KAA6BA,EAAY,GAC/B,mBAAVoR,KAAyBA,EAAQ,GAE5CwD,EAAEulB,UAAsB,EAAZn6B,EAAeoR,EAAO,GAClCwD,EAAEwQ,QAAQkB,EAAM,EAAG,GACnB1R,EAAEyQ,OAAOiB,EAAM,EAAG,IAStBs2I,WAAY,SAAShoJ,EAAGC,EAAOO,EAAWhE,EAAOqD,EAAWzU,EAAW0iC,EAAOhxB,GAE1E,GAAIgV,GAAQv3B,EAAG2b,EAAG2c,EAAIC,EAAIn4B,EAAG6vB,EAAI/sB,EAAI7C,EAAG6vB,EAAI/sB,CAK5C,IAHyB,mBAAd0N,KAA6BA,EAAY,GAC/B,mBAAVoR,KAAyBA,EAAQ,GAEvCsxB,EAiCL,CAII,IAHAhc,GAAU,SAAU,MAAU,KAC9Bv3B,EAAI,EAEGA,IAAM0lB,EAAMxlB,OAAS,GAExBo4B,EAAK5S,EAAM1lB,EAAI0lB,EAAMxlB,QACrBq4B,EAAK7S,GAAO1lB,EAAI,GAAK0lB,EAAMxlB,QAC3B+vB,EAAKqI,EAAG,GACRpI,EAAKoI,EAAG,GACRp1B,EAAKq1B,EAAG,GACRp1B,EAAKo1B,EAAG,GACR9S,EAAEulB,UAAUn6B,EAAW0mB,EAAOv3B,EAAIu3B,EAAOr3B,QAAS,GAClDulB,EAAEwQ,OAAOhG,GAAKC,GACdzK,EAAEyQ,OAAOhzB,GAAKC,GACdsiB,EAAE8nB,WAAWtd,GAAKC,EAAgB,EAAZrf,GACtB7Q,GAIJ,OADAylB,GAAEulB,UAAUn6B,EAAW,EAAU,GAC1B4U,EAAE8nB,WAAWhrB,EAAO,GAAIA,EAAO,GAAgB,EAAZ1R,GA/C1C,IAJA4U,EAAEulB,UAAUn6B,EAAWoR,EAAO,GAC9BwD,EAAEynB,UAAU5nB,GACZtlB,EAAI,EAEGA,IAAM0lB,EAAMxlB,QAEfyb,EAAI+J,EAAM1lB,GACVI,EAAIub,EAAE,GACNtb,EAAIsb,EAAE,GAEI,IAAN3b,EAEAylB,EAAEwQ,OAAO71B,GAAIC,GAIbolB,EAAEyQ,OAAO91B,GAAIC,GAGjBL,GAKJ,OAFAylB,GAAE2nB,UAEE1nB,EAAMxlB,OAAS,GAEfulB,EAAEwQ,OAAOvQ,EAAMA,EAAMxlB,OAAS,GAAG,IAAKwlB,EAAMA,EAAMxlB,OAAS,GAAG,IACvDulB,EAAEyQ,OAAOxQ,EAAM,GAAG,IAAKA,EAAM,GAAG,KAH3C,QAqCRmoJ,SAAU,SAASpoJ,EAAGioB,EAAMzrB,EAAOqD,EAAWzU,GAE1C,GAAIm5B,GAAMhqC,EAAG8tK,EAAOC,EAAOtmJ,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKnM,EAAGvb,EAAGC,CAe/D,KAdyB,mBAAdwQ,KAA6BA,EAAY,GAC/B,mBAAVoR,KAAyBA,EAAQ,GAE5CwD,EAAEulB,UAAUn6B,EAAWoR,EAAO,GAEL,gBAAdqD,IAEPG,EAAEynB,UAAU5nB,GAGhBwoJ,EAAQ,KACRC,EAAQ,KACR/tK,EAAI,EAEGA,EAAI0tC,EAAKxtC,QAEZyb,EAAI+xB,EAAK1tC,GACTI,EAAIub,EAAE,GACNtb,EAAIsb,EAAE,IAEFvb,IAAM0tK,GAASztK,IAAM0tK,KAEX,IAAN/tK,EAEAylB,EAAEwQ,OAAO71B,EAAGC,IAIZonB,EAAMqmJ,EACNpmJ,EAAMqmJ,EACNpmJ,EAAMvnB,EACNwnB,EAAMvnB,EACNwnB,EAAM6lB,GAAM1tC,EAAI,GAAK0tC,EAAKxtC,QAAQ,GAClC4nB,EAAM4lB,GAAM1tC,EAAI,GAAK0tC,EAAKxtC,QAAQ,GAClC8pC,GAASriB,EAAMF,IAAQK,EAAMJ,IAAUG,EAAMJ,IAAQG,EAAMF,GAE9C,IAATsiB,GAEAvkB,EAAEyQ,OAAO91B,EAAGC,IAGpBytK,EAAQ1tK,EACR2tK,EAAQ1tK,GAGZL,GAIqB,iBAAdslB,IAEPG,EAAE2nB,UAGFM,EAAKxtC,OAAS,GAA0B,gBAAdolB,KAE1BG,EAAEwQ,OAAOyX,EAAKA,EAAKxtC,OAAS,GAAG,GAAIwtC,EAAKA,EAAKxtC,OAAS,GAAG,IACzDulB,EAAEyQ,OAAOwX,EAAK,GAAG,GAAIA,EAAK,GAAG,MAUrCggI,UAAW,SAASjoJ,EAAGwK,EAAI/sB,EAAI+e,EAAO4G,EAAWhY,EAAWm9J,EAAYC,EAAUC,EAAW/rK,GAEzF,GAAI4O,GAAKo9J,EAAIC,CACY,oBAAdv9J,KAA6BA,EAAY,GAC/B,mBAAVoR,KAAyBA,EAAQ,UAE5CwD,EAAEulB,UAAUn6B,EAAWgY,EAAW,IAClCpD,EAAEynB,UAAUjrB,GACZlR,EAAMm9J,EAENzoJ,EAAEwQ,OAAOhG,GAAK/sB,GACdirK,EAAKl+I,EAAKlyB,KAAKqE,IAAID,GAAStG,KAAKmyC,KAAKhrC,MACtCorK,EAAKlrK,EAAKnF,KAAKsE,IAAIF,GAAStG,KAAKmyC,KAAK/qC,OACtCwiB,EAAEyQ,OAAOi4I,GAAKC,GAEd3oJ,EAAEwQ,OAAOhG,GAAK/sB,GACdirK,EAAKl+I,EAAKlyB,KAAKqE,IAAID,IAAUtG,KAAKmyC,KAAKhrC,MACvCorK,EAAKlrK,EAAKnF,KAAKsE,IAAIF,IAAUtG,KAAKmyC,KAAK/qC,OACvCwiB,EAAEyQ,OAAOi4I,GAAKC,IASlBZ,gBAAiB,WAEb,GAAI/xF,GAAMD,EAAO6yF,EAAK9yF,CAWtB,OAVA8yF,IAAO,IAAK,IAAK,KAEjB9yF,EAAMx9E,KAAKmoC,MAAsB,IAAhBnoC,KAAK4iC,UACtB66C,EAAQz9E,KAAKmoC,MAAsB,IAAhBnoC,KAAK4iC,UACxB86C,EAAO19E,KAAKmoC,MAAsB,IAAhBnoC,KAAK4iC,UAEvB46C,EAAMx9E,KAAKmoC,OAAOq1C,EAAM,EAAI8yF,EAAI,IAAM,GACtC7yF,EAAQz9E,KAAKmoC,OAAOs1C,EAAQ,EAAI6yF,EAAI,IAAM,GAC1C5yF,EAAO19E,KAAKmoC,OAAOu1C,EAAO,EAAI4yF,EAAI,IAAM,GAEjCxyK,KAAKyyK,SAAS/yF,EAAKC,EAAOC,IASrC6yF,SAAU,SAAS9oJ,EAAGC,EAAGtkB,GACrB,MAAOtF,MAAK2gH,eAAeh3F,GAAK3pB,KAAK2gH,eAAe/2F,GAAK5pB,KAAK2gH,eAAer7G,IAQjFq7G,eAAgB,SAASp7G,GAErB,GAAIoU,EAGJ,OAFAA,GAAMpU,EAAEiP,SAAS,IAED,IAAZmF,EAAI2hB,IAEG3hB,EAIAA,EAAM,OA6BzByoB,OAAO0d,QAAQ8iE,GAAG8wC,OAAS,SAAUthH,EAAOy9F,EAAOC,EAAOkkB,EAAYrgB,EAAW8b,EAAS4c,EAAQC,EAAQC,EAAQC,GAK9GxsK,KAAKmyC,KAAOC,EAAMD,KAKlBnyC,KAAKoyC,MAAQA,EAEa,mBAAf4hH,KAA8BA,EAAa,GAC7B,mBAAdrgB,KAA6BA,EAAY,KAC7B,mBAAZ8b,KAA2BA,EAAU,GAEhDuE,EAAa5hH,EAAMm3H,IAAIvV,EAEvB,IAAIrmI,IACAqmI,WAAYA,EACZrgB,UAAWA,EACX8b,QAASA,EAGS,oBAAX4c,IAAqC,OAAXA,IAEjC1+I,EAAQ43H,cAAiBnzG,EAAMm3H,IAAI8C,EAAO,IAAKj6H,EAAMm3H,IAAI8C,EAAO,MAG9C,mBAAXC,IAAqC,OAAXA,IAEjC3+I,EAAQ63H,cAAiBpzG,EAAMm3H,IAAI+C,EAAO,IAAKl6H,EAAMm3H,IAAI+C,EAAO,MAG9C,mBAAXC,IAAqC,OAAXA,IAEjC5+I,EAAQ03H,cAAiBjzG,EAAMm3H,IAAIgD,EAAO,IAAKn6H,EAAMm3H,IAAIgD,EAAO,MAG9C,mBAAXC,IAAqC,OAAXA,IAEjC7+I,EAAQ23H,cAAiBlzG,EAAMm3H,IAAIiD,EAAO,IAAKp6H,EAAMm3H,IAAIiD,EAAO,MAMpExsK,KAAK4W,KAAO,GAAI+3B,IAAG8kH,aAAa5jB,EAAOC,EAAOniH,GAE9C3tB,KAAK4W,KAAKvO,OAASrI,MAIvBoiC,OAAO0d,QAAQ8iE,GAAG8wC,OAAO7vJ,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAG8wC,OAoBnEtxH,OAAO0d,QAAQ8iE,GAAGoyC,iBAAmB,SAAU5iH,EAAOy9F,EAAOC,EAAOmlB,EAAWthB,EAAW8b,GAKtFzvJ,KAAKmyC,KAAOC,EAAMD,KAKlBnyC,KAAKoyC,MAAQA,EAEY,mBAAd6iH,KAA6BA,EAAY,MAC3B,mBAAdthB,KAA6BA,EAAY,KAC7B,mBAAZ8b,KAA2BA,EAAU,GAE5CwF,IAEAA,EAAY7iH,EAAMm3H,IAAItU,GAG1B,IAAItnI,IACAsnI,UAAWA,EACXthB,UAAWA,EACX8b,QAASA,EAMbzvJ,MAAK4W,KAAO,GAAI+3B,IAAGqmH,iBAAiBnlB,EAAOC,EAAOniH,GAElD3tB,KAAK4W,KAAKvO,OAASrI,MAIvBoiC,OAAO0d,QAAQ8iE,GAAG8wC,OAAO7vJ,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAG8wC,OAiBnEtxH,OAAO0d,QAAQ8iE,GAAG0qC,SAAW,SAAUjwI,GAMnCrd,KAAKqd,KAAOA,EAEZsxB,GAAG2+G,SAASvpJ,KAAK/D,OAIrBoiC,OAAO0d,QAAQ8iE,GAAG0qC,SAASzpJ,UAAYsF,OAAOkD,OAAOsiC,GAAG2+G,SAASzpJ,WACjEu+B,OAAO0d,QAAQ8iE,GAAG0qC,SAASzpJ,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAG0qC,SAiBrElrH,OAAO0d,QAAQ8iE,GAAGuqC,gBAAkB,SAAUC,EAAWC,EAAW1/H,GA0ChEghB,GAAGw+G,gBAAgBppJ,KAAK/D,KAAMotJ,EAAWC,EAAW1/H,IAIxDyU,OAAO0d,QAAQ8iE,GAAGuqC,gBAAgBtpJ,UAAYsF,OAAOkD,OAAOsiC,GAAGw+G,gBAAgBtpJ,WAC/Eu+B,OAAO0d,QAAQ8iE,GAAGuqC,gBAAgBtpJ,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAGuqC,gBAe5E/qH,OAAO0d,QAAQ8iE,GAAGinD,eAAiB,SAAUsC,GAKzCnsK,KAAKmP,KAAOg9J,GAuBhB/pI,OAAO0d,QAAQ8iE,GAAGwiC,mBAAqB,SAAUhzG,EAAOy9F,EAAOC,EAAOroG,EAAU49G,EAAcC,EAAcG,GAEhF,mBAAbh+G,KAA4BA,EAAW,KACtB,mBAAjB49G,KAAgCA,GAAgB,EAAG,IAClC,mBAAjBC,KAAgCA,GAAgB,EAAG,IACtC,mBAAbG,KAA4BA,EAAWp5G,OAAOG,WAKzDxsC,KAAKmyC,KAAOC,EAAMD,KAKlBnyC,KAAKoyC,MAAQA,EAEb3K,EAAW2K,EAAMm3H,IAAI9hI,GAErB49G,GAAiBjzG,EAAMo3H,KAAKnkB,EAAa,IAAKjzG,EAAMo3H,KAAKnkB,EAAa,KACtEC,GAAiBlzG,EAAMo3H,KAAKlkB,EAAa,IAAKlzG,EAAMo3H,KAAKlkB,EAAa,IAEtE,IAAI33H,IAAY8Z,SAAUA,EAAU49G,aAAcA,EAAcC,aAAcA,EAAcG,SAAUA,EAEtG92G,IAAGy2G,mBAAmBrhJ,KAAK/D,KAAM6vI,EAAOC,EAAOniH,IAInDyU,OAAO0d,QAAQ8iE,GAAGwiC,mBAAmBvhJ,UAAYsF,OAAOkD,OAAOsiC,GAAGy2G,mBAAmBvhJ,WACrFu+B,OAAO0d,QAAQ8iE,GAAGwiC,mBAAmBvhJ,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAGwiC,mBAmB/EhjH,OAAO0d,QAAQ8iE,GAAG8jC,eAAiB,SAAUt0G,EAAOy9F,EAAOC,EAAOxpI,EAAOq3B,GAEhD,mBAAVr3B,KAAyBA,EAAQ,GACvB,mBAAVq3B,KAAyBA,EAAQ,GAK5C39B,KAAKmyC,KAAOC,EAAMD,KAKlBnyC,KAAKoyC,MAAQA,CAEb,IAAIzkB,IAAYrnB,MAAOA,EAAOq3B,MAAOA,EAErCgR,IAAG+3G,eAAe3iJ,KAAK/D,KAAM6vI,EAAOC,EAAOniH,IAI/CyU,OAAO0d,QAAQ8iE,GAAG8jC,eAAe7iJ,UAAYsF,OAAOkD,OAAOsiC,GAAG+3G,eAAe7iJ,WAC7Eu+B,OAAO0d,QAAQ8iE,GAAG8jC,eAAe7iJ,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAG8jC,eAoB3EtkH,OAAO0d,QAAQ8iE,GAAGukC,eAAiB,SAAU/0G,EAAOy9F,EAAOC,EAAOppH,EAAQpgB,EAAOm/I,GAEvD,mBAAX/+H,KAA0BA,GAAU,EAAG,IAC7B,mBAAVpgB,KAAyBA,EAAQ,GACpB,mBAAbm/I,KAA4BA,EAAWp5G,OAAOG,WAKzDxsC,KAAKmyC,KAAOC,EAAMD,KAKlBnyC,KAAKoyC,MAAQA,EAEb1rB,GAAW0rB,EAAMm3H,IAAI7iJ,EAAO,IAAK0rB,EAAMm3H,IAAI7iJ,EAAO,IAElD,IAAIiH,IAAY25H,aAAc5gI,EAAQ0gI,YAAa9gJ,EAAOm/I,SAAUA,EAEpE92G,IAAGw4G,eAAepjJ,KAAK/D,KAAM6vI,EAAOC,EAAOniH,IAI/CyU,OAAO0d,QAAQ8iE,GAAGukC,eAAetjJ,UAAYsF,OAAOkD,OAAOsiC,GAAGw4G,eAAetjJ,WAC7Eu+B,OAAO0d,QAAQ8iE,GAAGukC,eAAetjJ,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAGukC,eAsB3E/kH,OAAO0d,QAAQ8iE,GAAG6kC,oBAAsB,SAAUr1G,EAAOy9F,EAAOC,EAAOw7B,EAAcC,EAASC,EAAS52F,EAAM6wE,GAE7E,mBAAjB6lB,KAAgCA,GAAe,GACnC,mBAAZC,KAA2BA,GAAW,EAAG,IAC7B,mBAAZC,KAA2BA,GAAW,EAAG,IAChC,mBAAT52F,KAAwBA,GAAQ,EAAG,IACtB,mBAAb6wE,KAA4BA,EAAWp5G,OAAOG,WAKzDxsC,KAAKmyC,KAAOC,EAAMD,KAKlBnyC,KAAKoyC,MAAQA,EAEbm5H,GAAYn5H,EAAMo3H,KAAK+B,EAAQ,IAAKn5H,EAAMo3H,KAAK+B,EAAQ,KACvDC,GAAYp5H,EAAMo3H,KAAKgC,EAAQ,IAAKp5H,EAAMo3H,KAAKgC,EAAQ,IAEvD,IAAI79I,IAAY03H,aAAckmB,EAASjmB,aAAckmB,EAAS9jB,WAAY9yE,EAAM6wE,SAAUA,EAAUqC,uBAAwBwjB,EAE5H38H,IAAG84G,oBAAoB1jJ,KAAK/D,KAAM6vI,EAAOC,EAAOniH,IAIpDyU,OAAO0d,QAAQ8iE,GAAG6kC,oBAAoB5jJ,UAAYsF,OAAOkD,OAAOsiC,GAAG84G,oBAAoB5jJ,WACvFu+B,OAAO0d,QAAQ8iE,GAAG6kC,oBAAoB5jJ,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAG6kC,oBAsBhFrlH,OAAO0d,QAAQ8iE,GAAGymC,mBAAqB,SAAUj3G,EAAOy9F,EAAOyZ,EAAQxZ,EAAOyZ,EAAQ9D,EAAU+D,GAEpE,mBAAb/D,KAA4BA,EAAWp5G,OAAOG,WAC/B,mBAAfg9G,KAA8BA,EAAa,MAKtDxpJ,KAAKmyC,KAAOC,EAAMD,KAKlBnyC,KAAKoyC,MAAQA,EAEbk3G,GAAWl3G,EAAMo3H,KAAKlgB,EAAO,IAAKl3G,EAAMo3H,KAAKlgB,EAAO,KACpDC,GAAWn3G,EAAMo3H,KAAKjgB,EAAO,IAAKn3G,EAAMo3H,KAAKjgB,EAAO,KAEhDC,IAEAA,GAAep3G,EAAMo3H,KAAKhgB,EAAW,IAAKp3G,EAAMo3H,KAAKhgB,EAAW,KAGpE,IAAI77H,IAAY67H,WAAYA,EAAYC,YAAaH,EAAQI,YAAaH,EAAQ9D,SAAUA,EAE5F92G,IAAG06G,mBAAmBtlJ,KAAK/D,KAAM6vI,EAAOC,EAAOniH,IAInDyU,OAAO0d,QAAQ8iE,GAAGymC,mBAAmBxlJ,UAAYsF,OAAOkD,OAAOsiC,GAAG06G,mBAAmBxlJ,WACrFu+B,OAAO0d,QAAQ8iE,GAAGymC,mBAAmBxlJ,UAAUsB,YAAci9B,OAAO0d,QAAQ8iE,GAAGymC"} \ No newline at end of file +{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","blendModes","NORMAL","ADD","MULTIPLY","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","scaleModes","DEFAULT","LINEAR","NEAREST","_UID","Float32Array","Uint16Array","Array","INTERACTION_FREQUENCY","AUTO_PREVENT_DEFAULT","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","dontSayHello","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","sayHello","type","navigator","userAgent","toLowerCase","indexOf","args","console","log","apply","window","Polygon","points","prototype","slice","call","arguments","Point","p","i","il","length","push","x","y","closed","clone","contains","inside","j","xi","yi","xj","yj","intersect","constructor","Matrix","a","b","c","d","tx","ty","fromArray","array","toArray","transpose","pos","newPos","applyInverse","id","translate","scale","rotate","angle","cos","sin","a1","c1","tx1","append","matrix","b1","d1","identity","identityMatrix","Rectangle","width","height","x1","y1","EmptyRectangle","RoundedRectangle","radius","DisplayObject","position","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","buttonMode","renderable","parent","stage","worldAlpha","_interactive","defaultCursor","worldTransform","_sr","_cr","filterArea","_bounds","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","Object","defineProperty","get","set","value","dirty","item","isMask","_filters","passes","filterPasses","_filterBlock","target","_generateCachedSprite","_destroyCachedSprite","updateTransform","pt","wt","rotationCache","displayObjectUpdateTransform","getBounds","getLocalBounds","setStageReference","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","_tempMatrix","render","updateCache","toGlobal","toLocal","from","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","destroy","DisplayObjectContainer","children","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","tint","blendMode","shader","baseTexture","hasLoaded","onTextureUpdate","on","bind","frame","setTexture","cachedTint","w0","w1","h0","h1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","valid","globalAlpha","roundPixels","setTransform","smoothProperty","dx","trim","dy","tintedTexture","CanvasTinter","getTintedTexture","drawImage","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","Texture","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","shaderManager","setShader","fastShader","transform","isRotated","childTransform","FilterBlock","Text","text","style","canvas","document","createElement","getContext","fromCanvas","setText","setStyle","updateText","font","fill","align","stroke","strokeThickness","wordWrap","wordWrapWidth","dropShadow","dropShadowAngle","dropShadowDistance","dropShadowColor","toString","outputText","lines","split","lineWidths","maxLineWidth","fontProperties","determineFontProperties","lineWidth","measureText","max","lineHeight","fontSize","isCocoonJS","clearRect","strokeStyle","textBaseline","linePositionX","linePositionY","fillStyle","xShadowOffset","yShadowOffset","ascent","fillText","strokeText","updateTexture","fontStyle","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","ceil","baseline","fillRect","imagedata","getImageData","data","pixels","line","idx","descent","result","spaceLeft","words","wordWidth","wordWidthWithSpace","destroyBaseTexture","BitmapText","textWidth","textHeight","_pool","fontName","parseInt","fonts","size","prevCharCode","chars","charCode","charCodeAt","test","charAt","charData","kerning","xOffset","yOffset","xAdvance","lineAlignOffsets","alignOffset","lenChildren","lenChars","pop","Stage","backgroundColor","interactive","interactionManager","InteractionManager","setBackgroundColor","setInteractionDelegate","domElement","setTargetDomElement","update","backgroundColorSplit","hex2rgb","hex","substr","backgroundColorString","getMousePosition","mouse","global","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","Date","getTime","timeToCall","setTimeout","clearTimeout","requestAnimFrame","rgb2hex","rgb","Function","thisArg","bound","boundArgs","concat","TypeError","F","proto","AjaxRequest","activexmodes","ActiveXObject","XMLHttpRequest","e","canUseNewCanvasBlendModes","getNextPowerOfTwo","number","EventTarget","obj","mixin","listeners","eventName","_listeners","emit","dispatchEvent","__isEventObject","Event","fn","stoppedImmediate","stopped","addEventListener","once","onceHandlerWrapper","self","off","_originalHandler","removeEventListener","list","removeAllListeners","name","content","timeStamp","now","stopPropagation","stopImmediatePropagation","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","vi","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","u","v","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","src","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","z","w","_dirty","instances","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","WebGLGraphics","renderGraphics","graphics","webGLData","projection","offset","primitiveShader","updateGraphics","webGL","_webGL","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","uniform2f","uniform3fv","uniform1f","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","shape","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","triangles","fromX","fromY","cpX","cpY","toX","toY","getPt","n1","n2","perc","diff","xa","ya","xb","yb","circleData","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","sqrt","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","contextLostBound","handleContextLost","contextRestoredBound","handleContextRestored","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","setContext","contextLost","__stage","removeEvents","_interactiveEventsAdded","setTarget","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","_powerOf2","event","preventDefault","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","SRC_ALPHA","DST_ALPHA","DST_COLOR","blendModeWebGL","blendFunc","maskData","stencilStack","reverse","count","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","EQUAL","DECR","INCR","_currentGraphics","complexPrimitiveShader","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","numVerts","numIndices","vertices","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","verticies","aX","aY","x0","y0","renderTilingSprite","tilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","temp","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","roundColor","stringColor","tintCache","tintMethod","convertTintToImage","tintImage","Image","toDataURL","tintWithMultiply","tintWithOverlay","tintWithPerPixel","rgbValues","pixelData","putImageData","step","cacheStepsPerColorChannel","min","canUseMultiply","CanvasRenderer","refresh","screencanvas","removeView","beginPath","moveTo","lineTo","closePath","strokeRect","arc","h","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","quadraticCurveTo","len","rect","pts","Strip","colors","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","strip","centerX","centerY","normX","normY","u0","u1","u2","v0","v1","v2","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","updateFrame","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","refreshTexture","generateTilingTexture","needsUpdate","updateWebGLTexture","__tilePattern","createPattern","forcePowerOfTwo","targetWidth","targetHeight","originalTexture","isFrame","newTextureRequired","canvasBuffer","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","scope","onload","onerror","imageUrl","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","TextureCacheIdGenerator","FrameCache","noFrame","requiresUpdate","setFrame","onBaseTextureLoaded","onLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","emptyTexture","textureBuffer","renderWebGL","renderCanvas","updateBase","realResolution","getImage","getBase64","getCanvas","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","tempMatrix","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","Phaser","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","Utils","getProperty","prop","parts","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","transposeArray","ArrayUtils","transposeMatrix","rotateArray","direction","rotateMatrix","shuffle","parseDimension","dimension","f","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","extend","copy","copyIsArray","deep","isArray","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","distance","round","output","circumferencePoint","asDegrees","out","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","atan2","angleSq","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","floor","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","requiredAngle","centroid","pointslength","parse","xProp","yProp","centerOn","floorAll","inflate","containsRect","intersection","tolerance","intersectsRaw","union","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","xMax","Number","MIN_VALUE","xMin","MAX_VALUE","yMax","yMin","forEach","Line","fromSprite","startSprite","endSprite","useCenter","center","asSegment","intersectsPoints","pointOnLine","pointOnSegment","coordinatesOnLine","stepRate","results","sx","sy","err","e2","uc","ua","ub","Ellipse","normx","normy","area","_points","ix","iy","jx","jy","calculateArea","p1","p2","avgHeight","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","destroyCachedSprite","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","startX","startY","sweep","segs","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","filling","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","updateLocalBounds","cachedSprite","GraphicsData","Camera","game","world","screenView","deadzone","roundPx","atLimit","_edge","_position","_targetPosition","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","paused","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","onLoadComplete","loadComplete","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","preUpdate","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","removeAll","debug","warn","link","unlink","getCurrentState","preRender","renderType","LinkedList","next","prev","first","callAll","entity","ArrayList","exists","getIndex","setAll","Signal","_bindings","_prevParams","dispatch","memorize","_shouldPropagate","active","validateListener","listener","fnName","replace","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","disableVisibilityChange","currentRenderOrderID","_hiddenVar","_backgroundColor","config","parseConfig","DOM","getOffset","_this","_onChange","visibilityChange","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","onpagehide","onpageshow","onblur","onfocus","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","alive","ignoreDestroy","classType","cursor","cameraOffset","enableBodyDebug","onDestroy","_sortProperty","_cache","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","events","onAddedToGroup","addMultiple","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","previous","swap","child1","bringToTop","sendToBack","moveUp","moveDown","xy","oldChild","newChild","onRemovedFromGroup","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","method","methodLength","contextLength","renderOrderID","predicate","checkExists","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","getRandomItem","destroyPhase","removeBetween","destroyChildren","soft","World","_definedSize","setBounds","wrap","useBounds","horizontal","vertical","integerInRange","FlexGrid","manager","boundsCustom","boundsFluid","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFluidInversed","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","multiplier","layers","createCustomLayer","addToWorld","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","onResize","fitSprite","scaleSprite","geom","uuid","grid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","maxIterations","enterLandscape","enterPortrait","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","createFullScreenTarget","fsTarget","margin","background","_createdFullScreenTarget","enterFullScreen","leaveFullScreen","fullScreenFailed","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","showAllCanExpand","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_fullScreenRestore","_gameSize","_userScaleFactor","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_lastReportedCanvasSize","_lastReportedGameSize","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","fullscreen","cocoonJS","iPad","webApp","desktop","android","chrome","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","fullScreenScaleMode","getElementById","getParentBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","setScreenSize","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","recheckOrientation","previousOrientation","changed","isLandscape","wasIncorrect","incorrectNow","isPortrait","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","setShowAll","resetCanvas","reflowCanvas","outerWidth","outerHeight","clientRect","getBoundingClientRect","wc","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","startFullScreen","allowTrampoline","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","elementBounds","element","cushion","aspect","object","getAspectRatio","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","checkResize","checkOrientation","checkOrientationState","Game","physicsConfig","isRunning","raf","net","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","_deltaTime","_lastCount","_spiralling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","_onBoot","readyState","cordova","seed","body","Device","setUpRenderer","checkFullScreenSupport","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","webAudio","addToDOM","updateRender","slowMotion","desiredFps","slowStep","elapsed","updateLogic","timeStep","elapsedTime","enableStep","disableStep","removeFromDOM","setMute","unsetMute","hitCanvas","hitContext","moveCallbacks","moveCallback","moveCallbackContext","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","currentPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","addPointer","Mouse","Keyboard","Touch","MSPointer","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","processClickTrampolines","Key","keycode","_enabled","isDown","isUp","altKey","ctrlKey","shiftKey","timeDown","duration","timeUp","repeats","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","downDuration","upDuration","pressEvent","onDownCallback","onPressCallback","onUpCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","addCallbacks","onPress","addKey","addKeyCapture","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","justPressed","justReleased","A","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","UNDERSCORE","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","INSERT","DELETE","HELP","NUM_LOCK","PLUS","MINUS","mouseDownCallback","mouseMoveCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","withinGame","bindEvent","deltaY","requestPointerLock","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","changedTouches","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","callbacks","onConnect","onDisconnect","onAxis","onFloat","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","buttonCode","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","buttons","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","GamepadButton","disconnectingIndex","axis","axisCode","buttonValue","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","addedToGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","startDrag","stopDrag","globalToLocalX","_dragPoint","dragOffset","globalToLocalY","fixedToCamera","checkBoundsRect","checkBoundsSprite","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","dragFromCenter","disableDrag","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","camerOffset","Events","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onAnimationStart","onAnimationComplete","onAnimationLoop","existing","group","tween","physicsGroup","audio","loop","audioSprite","addSprite","tileSprite","rope","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","characterWidth","characterHeight","charsPerRow","xSpacing","ySpacing","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","bitmapData","BitmapData","addBitmapData","Tween","ctx","imageData","Uint32Array","ArrayBuffer","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","_anchor","_tempR","_tempG","_tempB","_circle","loadTexture","draw","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","anchorX","anchorY","copyRect","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","animations","AnimationManager","checkTransform","autoCull","health","lifespan","checkWorldBounds","outOfBoundsKill","cropRect","scaleMin","scaleMax","_crop","_frame","kill","stopAnimation","getFrameData","loadFrameData","checkImageKey","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","updateCrop","resetFrame","cw","ch","revive","damage","_outOfBoundsFired","play","frameRate","killOnComplete","overlap","setScaleMinMax","wrapAngle","frameName","P2JS","removeFromWorld","phase","_reset","frameData","getFrame","_frameName","getFrameByName","_scroll","physicsElapsed","autoScroll","stopScroll","safeRemove","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_text","_font","_fontSize","_fontWeight","_lineSpacing","_charCount","setShadow","runWordWrap","lineCap","lineJoin","updateLine","letter","clearColors","addColor","parseFloat","_align","_tint","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","inputEnabled","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","characterSpacing","lineSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","box","clientTop","clientLeft","scrollLeft","compatMode","pageYOffset","pageXOffset","calibrate","coords","getViewport","getElementBounds","viewportWidth","viewportHeight","inViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","matches","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","iOS","node","nodeWebkit","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","epiphany","firefox","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","_checkOS","_checkAudio","_checkBrowser","_checkCSS3D","_checkDevice","_checkFeatures","_checkInput","vita","kindle","getItem","error","WebGLRenderingContext","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","maxTouchPoints","msPointerEnabled","pointerEnabled","fs","cfs","RegExp","$1","$3","process","require","audioElement","canPlayType","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","t","getComputedStyle","getPropertyValue","canPlayAudio","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","match","forceSetTimeOut","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","truncate","trunc","shear","snapTo","gap","snapToFloor","snapToCeil","snapToInArray","arr","findClosest","roundTo","place","base","pow","floorTo","ceilTo","interpolateFloat","weight","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","normalizeLatitude","lat","normalizeLongitude","lng","numberArray","numberArrayStep","maxAdd","minSub","wrapValue","randomSign","isOdd","isEven","minProperty","maxProperty","radians","angleLimit","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","objects","removeRandom","removeRandomItem","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","shuffleArray","distancePow","distanceRounded","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","s1","s2","sow","hash","integer","frac","realInRange","between","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","url","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","_pauseAll","_resumeAll","getAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_object","_pause","_resume","pauseAll","resumeAll","_valuesStart","_valuesEnd","_valuesStartRepeat","_duration","_repeat","_yoyo","_reversed","_delayTime","_startTime","_easingFunction","Easing","Default","_interpolationFunction","_chainedTweens","_onStartCallbackFired","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","onStart","onLoop","onComplete","ease","yoyo","_parent","_lastChild","chain","generateData","tick","blob","reversed","times","easing","interpolation","pauseDuration","isFinite","tmp","numChainedTweens","Linear","None","Quadratic","In","Out","InOut","Cubic","Quartic","Quintic","Sinusoidal","Exponential","Circular","Elastic","asin","Back","Bounce","prevTime","pausedTime","suggestedFps","_frameCount","_elapsedAccumulator","advancedTiming","fps","fpsMin","fpsMax","msMin","msMax","deltaCap","timeCap","timeExpected","Timer","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","Animation","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","_frameIndex","isPaused","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","useLocalFrameIndex","frameIndex","dispatchComplete","generateFrameNames","prefix","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","img","row","column","JSONData","json","cacheKey","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_canvases","_images","_textures","_sounds","_json","_xml","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","_urlMap","_urlResolver","_urlTemp","addDefaultImage","addMissingImage","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","addCanvas","addBinary","binaryData","addSpriteSheet","_resolveURL","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","TEXTURE_ATLAS_XML_STARLING","addBitmapFont","xmlData","LoaderParser","bitmapFont","addPhysicsData","addText","addJSON","addXML","addImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","getBitmapData","getBitmapFont","getPhysicsData","fixtureKey","fixtures","fixture","checkKey","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkURL","getTilemapData","map","getFrameByIndex","getTextureFrame","getRenderTexture","getTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getFrameCount","getText","getJSON","getXML","getBinary","getURL","getUrl","getKeys","removeCanvas","removeImage","removeFromPixi","removeSound","removeText","removeJSON","removeXML","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","baseURL","isLoading","progress","progressFloat","preloadSprite","onLoadStart","onFileStart","onFileComplete","onFileError","onPackComplete","useXDomainRequest","_packList","_packIndex","_fileList","_fileIndex","_progressChunk","_xhr","_ajax","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","getAsset","addToFileList","entry","loaded","replaceInFileList","pack","overwrite","script","binary","spritesheet","urls","autoDecode","audiosprite","atlasURL","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","xmlURL","domparser","DOMParser","parseFromString","async","loadXML","atlasJSONArray","atlas","atlasJSONHash","atlasXML","removeFile","loadPack","beginLoad","loadFile","packLoadComplete","xhrLoad","responseText","nextPack","packError","success","totalLoadedPacks","fileComplete","fileError","getAudioURL","usingWebAudio","usingAudioTag","Audio","XDomainRequest","timeout","dataLoadError","ontimeout","onprogress","jsonLoadComplete","open","send","responseType","extension","lastIndexOf","nextFile","loadNext","response","that","decodeAudioData","onSoundDecode","language","defer","head","csvLoadComplete","xmlLoadComplete","previousIndex","totalLoadedFiles","info","common","getAttribute","letters","textureRect","kernings","second","autoplayKey","autoplay","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","startTime","currentTime","durationMS","stopTime","pausedPosition","currentMarker","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","masterGain","createGain","createGainNode","gain","_sound","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","isDecoded","forceRestart","noteOff","createBufferSource","noteGrainOn","decode","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","_codeMuted","_unlockSource","noAudio","channels","fakeiOSTouchLock","unlock","disableAudio","disableWebAudio","noteOn","stopAll","soundData","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","randomIndex","NaN","low","high","POSITIVE_INFINITY","bmd","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","inCamera","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","arcade","ninja","chipmunk","CHIPMUNK","P2","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","TILE_BIAS","forceX","skipQuadTree","_overlap","_maxOverlap","_velocity1","_velocity2","_newVelocity1","_newVelocity2","_average","_mapData","_result","_total","_angle","updateMotion","_velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","_drag","object1","object2","overlapCallback","processCallback","collideHandler","len2","collide","collideCallback","len1","overlapOnly","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","collideGroupVsSelf","sprite1","sprite2","separate","_potentials","group1","group2","tilemapLayer","getTiles","tilePadding","separateTile","body1","body2","separateX","separateY","immovable","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","mass","deltaAbsY","overlapY","customSeparateY","moves","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","blocked","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","sourceWidth","sourceHeight","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","_sx","_sy","updateBounds","asx","asy","onFloor","onWall","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_explode","emitParticle","makeParticles","keys","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","setScale","at","Tile","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","tiles","collideIndexes","collision","images","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","gid","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","TilemapLayer","indexes","bodies","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","scrollX","scrollY","renderWidth","renderHeight","_scrollX","_scrollY","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","shiftCanvas","copyW","copyH","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","tilewidth","tileheight","opacity","firstgid","tileproperties","tileProperties","imageheight","imagewidth","polyline","polygon","ellipse","sid","drawCoords","coordIndex","updateTileData","setSpacing",1,"PcZj9L","Buffer","subject","encoding","stringtrim","coerce","byteLength","buf","augment","xUint8Array","isBuffer","isArrayIsh","readUInt8","write","_hexWrite","string","remaining","strLen","byte","_charsWritten","_utf8Write","blitBuffer","utf8ToBytes","_asciiWrite","asciiToBytes","_binaryWrite","_base64Write","base64ToBytes","BufferWrite","BufferToString","ProxyBuffer","_proxy","_hexSlice","_utf8Slice","_asciiSlice","_binarySlice","_base64Slice","BufferToJSON","BufferCopy","target_start","bytes","fromByteArray","decodeUtf8Char","ret","toHex","BufferSlice","BufferReadUInt8","noAssert","assert","_readUInt16","dv","xDataView","xArrayBuffer","setUint8","getUint16","_dataview","BufferReadUInt16LE","BufferReadUInt16BE","_readUInt32","getUint32","BufferReadUInt32LE","BufferReadUInt32BE","BufferReadInt8","getInt8","_readInt16","getInt16","BufferReadInt16LE","BufferReadInt16BE","_readInt32","getInt32","BufferReadInt32LE","BufferReadInt32BE","_readFloat","getFloat32","BufferReadFloatLE","BufferReadFloatBE","_readDouble","getFloat64","BufferReadDoubleLE","BufferReadDoubleBE","BufferWriteUInt8","verifuint","_writeUInt16","setUint16","getUint8","BufferWriteUInt16LE","BufferWriteUInt16BE","_writeUInt32","setUint32","BufferWriteUInt32LE","BufferWriteUInt32BE","BufferWriteInt8","verifsint","setInt8","_writeInt16","setInt16","BufferWriteInt16LE","BufferWriteInt16BE","_writeInt32","setInt32","BufferWriteInt32LE","BufferWriteInt32BE","_writeFloat","verifIEEE754","setFloat32","BufferWriteFloatLE","BufferWriteFloatBE","_writeDouble","setFloat64","BufferWriteDoubleLE","BufferWriteDoubleBE","BufferFill","BufferInspect","INSPECT_MAX_BYTES","BufferToArrayBuffer","_browserSupport","foo","_arr","byteOffset","browserSupport","toLocaleString","toJSON","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","inspect","toArrayBuffer","_isBuffer","proxyBuffer","proxy","Proxy","ProxyHandler","defaultValue","byteArray","encodeURIComponent","toByteArray","dst","message","TA","DataView","SlowBuffer","poolSize","isEncoding","totalLength","base64-js","typedarray","native-buffer-browserify",3,"b64ToByteArray","b64","placeHolders","lookup","uint8ToBase64","uint8","tripletToBase64","extraBytes",4,"configureProperties","getOwnPropertyNames","props","writable","enumerable","configurable","makeArrayAccessors","makeArrayAccessor","_getter","_setter","MAX_ARRAY_LENGTH","RangeError","as_signed","bits","as_unsigned","packI8","unpackI8","packU8","unpackU8","packU8Clamped","packI16","unpackI16","packU16","unpackU16","packI32","unpackI32","packU32","unpackU32","packIEEE754","ebits","fbits","roundToEven","bias","LN2","unpackIEEE754","unpackF64","packF64","unpackF32","packF32","ECMAScript","opts","ophop","Class","HasProperty","HasOwnProperty","IsCallable","ToInt32","ToUint32","desc","__defineGetter__","__defineSetter__","makeConstructor","bytesPerElement","unpack","ctor","sequence","BYTES_PER_ELEMENT","ArrayBufferView","_pack","_unpack","SyntaxError","_bytes","Int16Array","Float64Array","makeGetter","arrayType","uint8Array","Boolean","IS_BIG_ENDIAN","makeSetter","byteView","typeArray","u16array","u8array",2,"canSetImmediate","setImmediate","canPost","postMessage","queue","ev","title","browser","env","argv","cwd","chdir","Scalar","lineInt","l1","l2","precision","det","eq","segmentsIntersect","q1","q2","da","db","./Scalar","__browserify_Buffer","__browserify_process","leftOn","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","bc","magA","magB","acos","sqdist",5,"getIntersectionPoint","poly","makeCCW","br","isReflex","tmpLine1","tmpLine2","canSee","targetPoly","getCutEdges","tmp1","tmp2","tmpPoly","nDiags","decomp","edges","cutEdges","polys","cutEdge","isSimple","quickDecomp","reflexVertices","steinerPoints","maxlevel","upperInt","lowerInt","upperDist","lowerDist","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","removeCollinearPoints","./Line","./Point",6,7,"./Polygon",8,"description","author","keywords","main","engines","repository","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp",9,"AABB","lowerBound","vec2","upperBound","setFromPoints","skinSize","cosAngle","sinAngle","overlaps","../math/vec2","../utils/Utils",10,"Broadphase","boundingVolumeType","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","STATIC","KINEMATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",11,"GridBroadphase","defaults","xmin","ymin","nx","ny","binsizeX","binsizeY","Ncolliding","bins","Nbins","xmult","ymult","bi","lowerX","lowerY","upperX","upperY","xi1","yi1","xi2","yi2","bin","NbodiesInBin","bj","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane",12,"NaiveBroadphase","../shapes/Shape",13,"Narrowphase","contactEquations","frictionEquations","enableFriction","slipForce","frictionCoefficient","surfaceVelocity","reuseObjects","reusableContactEquations","reusableFrictionEquations","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","pic_r1","lastCross","crossLength","ContactEquation","FrictionEquation","Convex","Shape","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","collidedLastStep","id1","id2","eqs","ce","fe","rfe","rce","appendArray","createContactEquation","shapeA","shapeB","firstImpact","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","RECTANGLE","lineRectangle","rectangleBody","rectangleShape","rectangleOffset","rectangleAngle","convexCapsule_tempRect","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","ai","sj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","lineLine","positionA","angleA","positionB","angleB","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","particleBody","particleShape","particlePosition","particleAngle","circleLine","CIRCLE","circleBody","circleShape","circleOffset","circleAngle","lineRadius","circleRadius","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","radiusSum","pos0","pos1","circleCapsule","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","convexToparticle","minEdgeNormal","offsetA","offsetB","radiusA","radiusB","planeConvex","numReported","particlePlane","circleParticle","planeCapsule_tmpCircle","planeCapsule_tmp1","planeCapsule_tmp2","planeCapsule","capsuleOffset","end1","end2","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","edge","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","elementWidth","minCandidateNormal","idxA","idxB","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Convex","../shapes/Rectangle","../utils/TupleDictionary",14,"SAPBroadphase","axisList","axisIndex","_addBodyHandler","_removeBodyHandler","sortAxisList","aabbNeedsUpdate","updateAABB",15,"Constraint","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",16,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",17,"GearConstraint","AngleLockEquation","setMaxTorque","maxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",18,"LockConstraint","localAngleB","rot","localOffsetB","xAxis",19,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","upperLimitEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vj","wi","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",20,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","getMotorSpeed","../equations/RotationalVelocityEquation",21,"./Equation",22,"computeB","GW","Gq","GiMf","computeGiMf",23,"ARRAY_TYPE","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",24,"getSlipForce",25,"worldVectorA","worldVectorB",26,27,"EventEmitter","listenerArray",28,"ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material",29,30,"GetArea",31,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","mul","div","squaredDistance","sqrDist","sqrLen","negate",32,"_idCounter","shapes","shapeOffsets","shapeAngles","invMass","inertia","invInertia","fixedRotation","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","timeLastSleepy","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","Icm","computeMomentOfInertia","Body_applyForce_r","applyForce","rotForce","toWorldFrame","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","idleTime","wakeUpEvent","sleep","sleepEvent","sleepTick","dontSleep","speedSquared","speedLimitSquared","SLEEPY","getVelocityFromPosition","store","getAngularVelocityFromPosition","overlapKeeper","bodiesAreOverlapping","sleepyEvent","../collision/AABB","../events/EventEmitter",33,"LinearSpring","Spring","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","worldDistance","restLength","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f","./Spring",34,"RotationalSpring","restAngle",35,36,"Capsule","GSSolver","Heightfield","Plane","Solver","../package.json","./collision/AABB","./collision/Broadphase","./collision/GridBroadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/LinearSpring","./objects/RotationalSpring","./objects/Spring","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Rectangle","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/Utils","./world/World",37,"updateArea","./Shape",38,39,"polyk","tmpVec1","tmpVec2","projectOntoLocalAxis","projectOntoWorldAxis","shapeOffset","shapeAngle","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","numer","../math/polyk",40,"maxValue","minValue",41,42,43,44,"./Convex",45,"collisionGroup","collisionMask","material","sensor",46,"GS","iterations","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","solve","sortEquations","iter","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","addEquation","removeEquation","ISLAND",48,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","tmpDict","tmpArray1","OverlapKeeperRecord","lastObject","getByKey","currentObject","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./TupleDictionary","./Utils",49,"getKey","dict",50,"howmany",51,"Island","bodyIds",52,"IslandManager","_nodePool","_islandPool","islands","IslandNode","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","neighbors","ni","nj","./Island","./IslandNode",53,54,"springs","disabledBodyCollisionPairs","solver","narrowphase","islandManager","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","doProfiling","lastStepTime","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","bodiesToBeRemoved","fixedStepTime","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","performance","nowOffset","timing","navigationStart","BODY_SLEEPING","ISLAND_SLEEPING","addConstraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","removeConstraint","step_mg","xiw","xjw","interpvelo","timeSinceLastCalled","maxSubSteps","internalStep","internalSteps","t0","h_div_dt","endOverlaps","t1","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","Nshapesi","Nshapesj","runNarrowphase","integrateBody","removeBody","ib_fhMinv","ib_velodt","minv","velo","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","removeSpring","addBody","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","fromJSON","hitTest_tmp1","hitTest_zero","hitTest_tmp2","pb","ps","pa","zero","NS","setGlobalEquationParameters","parameters","setGlobalStiffness","setGlobalRelaxation","../../package.json","../collision/NaiveBroadphase","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/Constraint","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/LinearSpring","../objects/RotationalSpring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager","useElapsedTime","materials","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","constraint","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","clearTilemapLayerBodies","convertTilemap","optimize","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","flatten","getFixtureByKey","getGroup","groupID","_ref","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","_groupCallbacksContext","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","resetDamping","resetMass","clearShapes","shapeChanged","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","updateSpriteTransform","vrot","_j","_ref1","randomPastelHex","drawConvex","drawPlane","drawLine","drawRectangle","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex"],"mappings":"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"} \ No newline at end of file diff --git a/build/phaser.min.js b/build/phaser.min.js index b65baa24c..e1bc036be 100644 --- a/build/phaser.min.js +++ b/build/phaser.min.js @@ -3,12 +3,12 @@ (function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.1.0",b.blendModes={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},b.scaleModes={DEFAULT:0,LINEAR:0,NEAREST:1},b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array):(b.Float32Array=Array,b.Uint16Array=Array),b.INTERACTION_FREQUENCY=30,b.AUTO_PREVENT_DEFAULT=!0,b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.dontSayHello=!1,b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.sayHello=function(a){if(!b.dontSayHello){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var c=["%c %c %c Pixi.js "+b.VERSION+" - "+a+" %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ","background: #ff66a5","background: #ff66a5","color: #ff66a5; background: #030307;","background: #ff66a5","background: #ffc3dc","background: #ff66a5","color: #ff2424; background: #fff","color: #ff2424; background: #fff","color: #ff2424; background: #fff"];console.log.apply(console,c)}else window.console&&console.log("Pixi.js "+b.VERSION+" - http://www.pixijs.com/");b.dontSayHello=!0}},b.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),a[0]instanceof b.Point){for(var c=[],d=0,e=a.length;e>d;d++)c.push(a[d].x,a[d].y);a=c}this.closed=!0,this.points=a},b.Polygon.prototype.clone=function(){var a=this.points.slice();return new b.Polygon(a)},b.Polygon.prototype.contains=function(a,b){for(var c=!1,d=this.points.length/2,e=0,f=d-1;d>e;f=e++){var g=this.points[2*e],h=this.points[2*e+1],i=this.points[2*f],j=this.points[2*f+1],k=h>b!=j>b&&(i-g)*(b-h)/(j-h)+g>a;k&&(c=!c)}return c},b.Polygon.prototype.constructor=b.Polygon,b.Matrix=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0},b.Matrix.prototype.fromArray=function(a){this.a=a[0],this.b=a[1],this.c=a[3],this.d=a[4],this.tx=a[2],this.ty=a[5]},b.Matrix.prototype.toArray=function(a){this.array||(this.array=new b.Float32Array(9));var c=this.array;return a?(c[0]=this.a,c[1]=this.b,c[2]=0,c[3]=this.c,c[4]=this.d,c[5]=0,c[6]=this.tx,c[7]=this.ty,c[8]=1):(c[0]=this.a,c[1]=this.c,c[2]=this.tx,c[3]=this.b,c[4]=this.d,c[5]=this.ty,c[6]=0,c[7]=0,c[8]=1),c},b.Matrix.prototype.apply=function(a,c){return c=c||new b.Point,c.x=this.a*a.x+this.c*a.y+this.tx,c.y=this.b*a.x+this.d*a.y+this.ty,c},b.Matrix.prototype.applyInverse=function(a,c){c=c||new b.Point;var d=1/(this.a*this.d+this.c*-this.b);return c.x=this.d*d*a.x+-this.c*d*a.y+(this.ty*this.c-this.tx*this.d)*d,c.y=this.a*d*a.y+-this.b*d*a.x+(-this.ty*this.a+this.tx*this.b)*d,c},b.Matrix.prototype.translate=function(a,b){return this.tx+=a,this.ty+=b,this},b.Matrix.prototype.scale=function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},b.Matrix.prototype.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},b.Matrix.prototype.append=function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},b.Matrix.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},b.identityMatrix=new b.Matrix,b.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},b.Rectangle.prototype.clone=function(){return new b.Rectangle(this.x,this.y,this.width,this.height)},b.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.Rectangle.prototype.constructor=b.Rectangle,b.EmptyRectangle=new b.Rectangle(0,0,0,0),b.RoundedRectangle=function(a,b,c,d,e){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0,this.radius=e||20},b.RoundedRectangle.prototype.clone=function(){return new b.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)},b.RoundedRectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},b.RoundedRectangle.prototype.constructor=b.RoundedRectangle,b.DisplayObject=function(){this.position=new b.Point,this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.defaultCursor="pointer",this.worldTransform=new b.Matrix,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,Object.defineProperty(b.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;ga;a++)this.children[a].updateTransform()},b.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=b.DisplayObjectContainer.prototype.updateTransform,b.DisplayObjectContainer.prototype.getBounds=function(){if(0===this.children.length)return b.EmptyRectangle;for(var a,c,d,e=1/0,f=1/0,g=-1/0,h=-1/0,i=!1,j=0,k=this.children.length;k>j;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a,this._interactive&&(this.stage.dirty=!0);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d.setStageReference(a)}},b.DisplayObjectContainer.prototype.removeStageReference=function(){for(var a=0,b=this.children.length;b>a;a++){var c=this.children[a];c.removeStageReference()}this._interactive&&(this.stage.dirty=!0),this.stage=null},b.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);var b,c;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}else for(b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)return void this._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(var b=0,c=this.children.length;c>b;b++){var d=this.children[b];d._renderCanvas(a)}this._mask&&a.maskManager.popMask(a)}},b.Sprite=function(a){b.DisplayObjectContainer.call(this),this.anchor=new b.Point,this.texture=a,this._width=0,this._height=0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.shader=null,a.baseTexture.hasLoaded?this.onTextureUpdate():this.texture.on("update",this.onTextureUpdate.bind(this)),this.renderable=!0},b.Sprite.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Sprite.prototype.constructor=b.Sprite,Object.defineProperty(b.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(b.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),b.Sprite.prototype.setTexture=function(a){this.texture=a,this.cachedTint=16777215},b.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height)},b.Sprite.prototype.getBounds=function(a){var b=this.texture.frame.width,c=this.texture.frame.height,d=b*(1-this.anchor.x),e=b*-this.anchor.x,f=c*(1-this.anchor.y),g=c*-this.anchor.y,h=a||this.worldTransform,i=h.a,j=h.b,k=h.c,l=h.d,m=h.tx,n=h.ty,o=i*e+k*g+m,p=l*g+j*e+n,q=i*d+k*g+m,r=l*g+j*d+n,s=i*d+k*f+m,t=l*f+j*d+n,u=i*e+k*f+m,v=l*f+j*e+n,w=-1/0,x=-1/0,y=1/0,z=1/0;y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,z=z>p?p:z,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=p>x?p:x,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x;var A=this._bounds;return A.x=y,A.width=w-y,A.y=z,A.height=x-z,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){var b,c;if(this._mask||this._filters){var d=a.spriteBatch;for(this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a);d.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),d.start()}else for(a.spriteBatch.render(this),b=0,c=this.children.length;c>b;b++)this.children[b]._renderWebGL(a)}},b.Sprite.prototype._renderCanvas=function(a){if(!(this.visible===!1||0===this.alpha||this.texture.crop.width<=0||this.texture.crop.height<=0)){if(this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,a.context.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a),this.texture.valid){var c=this.texture.baseTexture.resolution/a.resolution;a.context.globalAlpha=this.worldAlpha,a.roundPixels?a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution|0,this.worldTransform.ty*a.resolution|0):a.context.setTransform(this.worldTransform.a,this.worldTransform.b,this.worldTransform.c,this.worldTransform.d,this.worldTransform.tx*a.resolution,this.worldTransform.ty*a.resolution),a.smoothProperty&&a.scaleMode!==this.texture.baseTexture.scaleMode&&(a.scaleMode=this.texture.baseTexture.scaleMode,a.context[a.smoothProperty]=a.scaleMode===b.scaleModes.LINEAR);var d=this.texture.trim?this.texture.trim.x-this.anchor.x*this.texture.trim.width:this.anchor.x*-this.texture.frame.width,e=this.texture.trim?this.texture.trim.y-this.anchor.y*this.texture.trim.height:this.anchor.y*-this.texture.frame.height;16777215!==this.tint?(this.cachedTint!==this.tint&&(this.cachedTint=this.tint,this.tintedTexture=b.CanvasTinter.getTintedTexture(this,this.tint)),a.context.drawImage(this.tintedTexture,0,0,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)):a.context.drawImage(this.texture.baseTexture.source,this.texture.crop.x,this.texture.crop.y,this.texture.crop.width,this.texture.crop.height,d/c,e/c,this.texture.crop.width/c,this.texture.crop.height/c)}for(var f=0,g=this.children.length;g>f;f++)this.children[f]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},b.Sprite.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache'+this);return new b.Sprite(c)},b.Sprite.fromImage=function(a,c,d){var e=b.Texture.fromImage(a,c,d);return new b.Sprite(e)},b.SpriteBatch=function(a){b.DisplayObjectContainer.call(this),this.textureThing=a,this.ready=!1},b.SpriteBatch.prototype=Object.create(b.DisplayObjectContainer.prototype),b.SpriteBatch.prototype.constructor=b.SpriteBatch,b.SpriteBatch.prototype.initWebGL=function(a){this.fastSpriteBatch=new b.WebGLFastSpriteBatch(a),this.ready=!0},b.SpriteBatch.prototype.updateTransform=function(){b.DisplayObject.prototype.updateTransform.call(this)},b.SpriteBatch.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||!this.children.length||(this.ready||this.initWebGL(a.gl),a.spriteBatch.stop(),a.shaderManager.setShader(a.shaderManager.fastShader),this.fastSpriteBatch.begin(this,a),this.fastSpriteBatch.render(this),a.spriteBatch.start())},b.SpriteBatch.prototype._renderCanvas=function(a){if(this.visible&&!(this.alpha<=0)&&this.children.length){var c=a.context;c.globalAlpha=this.worldAlpha,b.DisplayObject.prototype.updateTransform.call(this);for(var d=this.worldTransform,e=!0,f=0;fi;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.wordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g],e=this.style.wordWrapWidth-h):(e-=i,b+=" "+f[g])}d=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"===this.style.align?n=f-g[j]:"center"===this.style.align&&(n=(f-g[j])/2),m.push(n)}var o=this.children.length,p=e.length,q=this.tint||16777215;for(j=0;p>j;j++){var r=o>j?this.children[j]:this._pool.pop();r?r.setTexture(e[j].texture):r=new b.Sprite(e[j].texture),r.position.x=(e[j].position.x+m[e[j].line])*i,r.position.y=e[j].position.y*i,r.scale.x=r.scale.y=i,r.tint=q,r.parent||this.addChild(r)}for(;this.children.length>p;){var s=this.getChildAt(this.children.length-1);this._pool.push(s),this.removeChild(s)}this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i},b.BitmapText.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.interactive=!0,this.interactionManager=new b.InteractionManager(this),this.dirty=!0,this.stage=this,this.stage.hitArea=new b.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},b.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=b.hex2rgb(this.backgroundColor);var c=this.backgroundColor.toString(16);c="000000".substr(0,6-c.length)+c,this.backgroundColorString="#"+c},b.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},function(a){for(var b=0,c=["ms","moz","webkit","o"],d=0;d>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){return function(a){function b(){for(var d=arguments.length,f=new Array(d);d--;)f[d]=arguments[d];return f=e.concat(f),c.apply(this instanceof b?this:a,f)}var c=this,d=arguments.length-1,e=[];if(d>0)for(e.length=d;d--;)e[d]=arguments[d+1];if("function"!=typeof c)throw new TypeError;return b.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(c.prototype),b}}()),b.AjaxRequest=function(){var a=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new window.XMLHttpRequest:!1;for(var b=0;b0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.EventTarget={call:function(a){a&&(a=a.prototype||a,b.EventTarget.mixin(a))},mixin:function(a){a.listeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?this._listeners[a].slice():[]},a.emit=a.dispatchEvent=function(a,c){if(this._listeners=this._listeners||{},"object"==typeof a&&(c=a,a=a.type),c&&c.__isEventObject===!0||(c=new b.Event(this,a,c)),this._listeners&&this._listeners[a]){var d,e=this._listeners[a].slice(0),f=e.length,g=e[0];for(d=0;f>d;g=e[++d])if(g.call(this,c),c.stoppedImmediate)return this;if(c.stopped)return this}return this.parent&&this.parent.emit&&this.parent.emit.call(this.parent,a,c),this},a.on=a.addEventListener=function(a,b){return this._listeners=this._listeners||{},(this._listeners[a]=this._listeners[a]||[]).push(b),this},a.once=function(a,b){function c(){b.apply(d.off(a,c),arguments)}this._listeners=this._listeners||{}; var d=this;return c._originalHandler=b,this.on(a,c)},a.off=a.removeEventListener=function(a,b){if(this._listeners=this._listeners||{},!this._listeners[a])return this;for(var c=this._listeners[a],d=b?c.length:0;d-->0;)(c[d]===b||c[d]._originalHandler===b)&&c.splice(d,1);return 0===c.length&&delete this._listeners[a],this},a.removeAllListeners=function(a){return this._listeners=this._listeners||{},this._listeners[a]?(delete this._listeners[a],this):this}}},b.Event=function(a,b,c){this.__isEventObject=!0,this.stopped=!1,this.stoppedImmediate=!1,this.target=a,this.type=b,this.data=c,this.content=c,this.timeStamp=Date.now()},b.Event.prototype.stopPropagation=function(){this.stopped=!0},b.Event.prototype.stopImmediatePropagation=function(){this.stoppedImmediate=!0},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;"," vColor = vec4(color * aColor.x, aColor.x);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.lastIndex=0,this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[],this.lastIndex=0},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.sayHello("webGL"),b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(a.interactive&&a.interactionManager.removeEvents(),this.__stage=a),a.updateTransform();var b=this.gl;a._interactive?a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this)):a._interactiveEventsAdded&&(a._interactiveEventsAdded=!1,a.interactionManager.setTarget(this)),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP) }},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a){var b=a.texture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=b.baseTexture);var c=b._uvs;if(c){var d,e,f,g,h=a.worldAlpha,i=a.tint,j=this.vertices,k=a.anchor.x,l=a.anchor.y;if(b.trim){var m=b.trim;e=m.x-k*m.width,d=e+b.crop.width,g=m.y-l*m.height,f=g+b.crop.height}else d=b.frame.width*(1-k),e=b.frame.width*-k,f=b.frame.height*(1-l),g=b.frame.height*-l;var n=4*this.currentBatchSize*this.vertSize,o=b.baseTexture.resolution,p=a.worldTransform,q=p.a/o,r=p.b/o,s=p.c/o,t=p.d/o,u=p.tx,v=p.ty;j[n++]=q*e+s*g+u,j[n++]=t*g+r*e+v,j[n++]=c.x0,j[n++]=c.y0,j[n++]=h,j[n++]=i,j[n++]=q*d+s*g+u,j[n++]=t*g+r*d+v,j[n++]=c.x1,j[n++]=c.y1,j[n++]=h,j[n++]=i,j[n++]=q*d+s*f+u,j[n++]=t*f+r*d+v,j[n++]=c.x2,j[n++]=c.y2,j[n++]=h,j[n++]=i,j[n++]=q*e+s*f+u,j[n++]=t*f+r*e+v,j[n++]=c.x3,j[n++]=c.y3,j[n++]=h,j[n++]=i,this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs;a.tilePosition.x%=c.baseTexture.width*a.tileScaleOffset.x,a.tilePosition.y%=c.baseTexture.height*a.tileScaleOffset.y;var e=a.tilePosition.x/(c.baseTexture.width*a.tileScaleOffset.x),f=a.tilePosition.y/(c.baseTexture.height*a.tileScaleOffset.y),g=a.width/c.baseTexture.width/(a.tileScale.x*a.tileScaleOffset.x),h=a.height/c.baseTexture.height/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-e,d.y0=0-f,d.x1=1*g-e,d.y1=0-f,d.x2=1*g-e,d.y2=1*h-f,d.x3=0-e,d.y3=1*h-f;var i=a.worldAlpha,j=a.tint,k=this.vertices,l=a.width,m=a.height,n=a.anchor.x,o=a.anchor.y,p=l*(1-n),q=l*-n,r=m*(1-o),s=m*-o,t=4*this.currentBatchSize*this.vertSize,u=c.baseTexture.resolution,v=a.worldTransform,w=v.a/u,x=v.b/u,y=v.c/u,z=v.d/u,A=v.tx,B=v.ty;k[t++]=w*q+y*s+A,k[t++]=z*s+x*q+B,k[t++]=d.x0,k[t++]=d.y0,k[t++]=i,k[t++]=j,k[t++]=w*p+y*s+A,k[t++]=z*s+x*p+B,k[t++]=d.x1,k[t++]=d.y1,k[t++]=i,k[t++]=j,k[t++]=w*p+y*r+A,k[t++]=z*r+x*p+B,k[t++]=d.x2,k[t++]=d.y2,k[t++]=i,k[t++]=j,k[t++]=w*q+y*r+A,k[t++]=z*r+x*q+B,k[t++]=d.x3,k[t++]=d.y3,k[t++]=i,k[t++]=j,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,2,c.FLOAT,!1,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath(),(g.fillColor||0===g.fillColor)&&(c.globalAlpha=g.fillAlpha*d,c.fillStyle=e="#"+("00000"+(0|g.fillColor).toString(16)).substr(-6),c.fill()),g.lineWidth&&(c.globalAlpha=g.lineAlpha*d,c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){d>1&&(d=1,window.console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var e=0;1>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){c.beginPath();var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iA?A:z,c.beginPath(),c.moveTo(v,w+z),c.lineTo(v,w+y-z),c.quadraticCurveTo(v,w+y,v+z,w+y),c.lineTo(v+x-z,w+y),c.quadraticCurveTo(v+x,w+y,v+x,w+y-z),c.lineTo(v+x,w+z),c.quadraticCurveTo(v+x,w,v+x-z,w),c.lineTo(v+z,w),c.quadraticCurveTo(v,w,v,w+z),c.closePath()}}}},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.padding=0},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var b=a.gl,c=a.projection,d=a.offset,e=a.shaderManager.stripShader;a.blendModeManager.setBlendMode(this.blendMode),b.uniformMatrix3fv(e.translationMatrix,!1,this.worldTransform.toArray(!0)),b.uniform2f(e.projectionVector,c.x,-c.y),b.uniform2f(e.offsetVector,-d.x,-d.y),b.uniform1f(e.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.verticies,b.STATIC_DRAW),b.vertexAttribPointer(e.aVertexPosition,2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.vertexAttribPointer(e.aTextureCoord,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),this.texture.baseTexture._dirty[b.id]?a.renderer.updateTexture(this.texture.baseTexture):b.bindTexture(b.TEXTURE_2D,this.texture.baseTexture._glTextures[b.id]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)):(b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferSubData(b.ARRAY_BUFFER,0,this.verticies),b.vertexAttribPointer(e.aVertexPosition,2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.vertexAttribPointer(e.aTextureCoord,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),this.texture.baseTexture._dirty[b.id]?a.renderer.updateTexture(this.texture.baseTexture):b.bindTexture(b.TEXTURE_2D,this.texture.baseTexture._glTextures[b.id]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),b.drawElements(b.TRIANGLE_STRIP,this.indices.length,b.UNSIGNED_SHORT,0) -},b.Strip.prototype._renderCanvas=function(a){var b=a.context,c=this.worldTransform;a.roundPixels?b.setTransform(c.a,c.b,c.c,c.d,0|c.tx,0|c.ty):b.setTransform(c.a,c.b,c.c,c.d,c.tx,c.ty);var d=this,e=d.verticies,f=d.uvs,g=e.length/2;this.count++;for(var h=0;g-2>h;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5];if(this.padding>0){var p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3)}var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.c*g,f.b*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC5",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.righth;h++){var i=2*h,j=e[i],k=e[i+2],l=e[i+4],m=e[i+1],n=e[i+3],o=e[i+5];if(this.padding>0){var p=(j+k+l)/3,q=(m+n+o)/3,r=j-p,s=m-q,t=Math.sqrt(r*r+s*s);j=p+r/t*(t+3),m=q+s/t*(t+3),r=k-p,s=n-q,t=Math.sqrt(r*r+s*s),k=p+r/t*(t+3),n=q+s/t*(t+3),r=l-p,s=o-q,t=Math.sqrt(r*r+s*s),l=p+r/t*(t+3),o=q+s/t*(t+3)}var u=f[i]*d.texture.width,v=f[i+2]*d.texture.width,w=f[i+4]*d.texture.width,x=f[i+1]*d.texture.height,y=f[i+3]*d.texture.height,z=f[i+5]*d.texture.height;b.save(),b.beginPath(),b.moveTo(j,m),b.lineTo(k,n),b.lineTo(l,o),b.closePath(),b.clip();var A=u*y+x*w+v*z-y*w-x*v-u*z,B=j*y+x*l+k*z-y*l-x*k-j*z,C=u*k+j*w+v*l-k*w-j*v-u*l,D=u*y*l+x*k*w+j*v*z-j*y*w-x*v*l-u*k*z,E=m*y+x*o+n*z-y*o-x*n-m*z,F=u*n+m*w+v*o-n*w-m*v-u*o,G=u*y*o+x*n*w+m*v*z-m*y*w-x*v*o-u*n*z;b.transform(B/A,E/A,C/A,F/A,D/A,G/A),b.drawImage(d.texture.baseTexture.source,0,0),b.restore()}},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.verticies=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.verticies,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||100,this._height=d||100,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point(0,0),this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){var c,d;for(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),!this.tilingTexture||this.refreshTexture?(this.generateTilingTexture(!0),this.tilingTexture&&this.tilingTexture.needsUpdate&&(b.updateWebGLTexture(this.tilingTexture.baseTexture,a.gl),this.tilingTexture.needsUpdate=!1)):a.spriteBatch.renderTilingSprite(this),c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop(),this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this._mask,a),a.spriteBatch.start()}},b.TilingSprite.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){var c=a.context;this._mask&&a.maskManager.pushMask(this._mask,c),c.globalAlpha=this.worldAlpha;var d,e,f=this.worldTransform,g=a.resolution;if(c.setTransform(f.a*g,f.c*g,f.b*g,f.d*g,f.tx*g,f.ty*g),!this.__tilePattern||this.refreshTexture){if(this.generateTilingTexture(!1),!this.tilingTexture)return;this.__tilePattern=c.createPattern(this.tilingTexture.baseTexture.source,"repeat")}this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,c.globalCompositeOperation=b.blendModesCanvas[a.currentBlendMode]);var h=this.tilePosition,i=this.tileScale;for(h.x%=this.tilingTexture.baseTexture.width,h.y%=this.tilingTexture.baseTexture.height,c.scale(i.x,i.y),c.translate(h.x+this.anchor.x*-this._width,h.y+this.anchor.y*-this._height),c.fillStyle=this.__tilePattern,c.fillRect(-h.x,-h.y,this._width/i.x,this._height/i.y),c.scale(1/i.x,1/i.y),c.translate(-h.x+this.anchor.x*this._width,-h.y+this.anchor.y*this._height),this._mask&&a.maskManager.popMask(a.context),d=0,e=this.children.length;e>d;d++)this.children[d]._renderCanvas(a)}},b.TilingSprite.prototype.getBounds=function(){var a=this._width,b=this._height,c=a*(1-this.anchor.x),d=a*-this.anchor.x,e=b*(1-this.anchor.y),f=b*-this.anchor.y,g=this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=-1/0,w=-1/0,x=1/0,y=1/0;x=x>n?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.onTextureUpdate=function(){},b.TilingSprite.prototype.generateTilingTexture=function(a){if(this.texture.baseTexture.hasLoaded){var c,d,e=this.originalTexture||this.texture,f=e.frame,g=f.width!==e.baseTexture.width||f.height!==e.baseTexture.height,h=!1;if(a?(c=b.getNextPowerOfTwo(f.width),d=b.getNextPowerOfTwo(f.height),(f.width!==c||f.height!==d)&&(h=!0)):g&&(c=f.width,d=f.height,h=!0),h){var i;this.tilingTexture&&this.tilingTexture.isTiling?(i=this.tilingTexture.canvasBuffer,i.resize(c,d),this.tilingTexture.baseTexture.width=c,this.tilingTexture.baseTexture.height=d,this.tilingTexture.needsUpdate=!0):(i=new b.CanvasBuffer(c,d),this.tilingTexture=b.Texture.fromCanvas(i.canvas),this.tilingTexture.canvasBuffer=i,this.tilingTexture.isTiling=!0),i.context.drawImage(e.baseTexture.source,e.crop.x,e.crop.y,e.crop.width,e.crop.height,0,0,c,d),this.tileScaleOffset.x=f.width/c,this.tileScaleOffset.y=f.height/d}else this.tilingTexture&&this.tilingTexture.isTiling&&this.tilingTexture.destroy(!0),this.tileScaleOffset.x=1,this.tileScaleOffset.y=1,this.tilingTexture=e;this.refreshTexture=!1,this.originalTexture=this.texture,this.texture=this.tilingTexture,this.tilingTexture.baseTexture._powerOf2=!0}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){if(this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this._dirty=[!0,!0,!0,!0],a){if((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height)this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty();else{var d=this;this.source.onload=function(){d.hasLoaded=!0,d.width=d.source.naturalWidth||d.source.width,d.height=d.source.naturalHeight||d.source.height,d.dirty(),d.dispatchEvent({type:"loaded",content:d})},this.source.onerror=function(){d.dispatchEvent({type:"error",content:d})}}this.imageUrl=null,this._powerOf2=!1}},b.BaseTexture.prototype.constructor=b.BaseTexture,b.EventTarget.mixin(b.BaseTexture.prototype),b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.requiresUpdate=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded?(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c)):a.addEventListener("loaded",this.onBaseTextureLoaded.bind(this))},b.Texture.prototype.constructor=b.Texture,b.EventTarget.mixin(b.Texture.prototype),b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame),this.dispatchEvent({type:"update",content:this})},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height))throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.Texture.emptyTexture=new b.Texture(new b.BaseTexture),b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width,this.height)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width*this.resolution,this.height*this.resolution,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=this.frame.width=this.crop.width=a,this.height=this.frame.height=this.crop.height=c,d&&(this.baseTexture.width=this.width,this.baseTexture.height=this.height),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width*this.resolution,this.height*this.resolution))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();var h=this.renderer.gl;h.viewport(0,0,this.width*this.resolution,this.height*this.resolution),h.bindFramebuffer(h.FRAMEBUFFER,this.textureBuffer.frameBuffer),c&&this.textureBuffer.clear(),this.renderer.spriteBatch.dirty=!0,this.renderer.renderDisplayObject(a,this.projection,this.textureBuffer.frameBuffer),this.renderer.spriteBatch.dirty=!0}},b.RenderTexture.prototype.renderCanvas=function(a,b,c){if(this.valid){var d=a.worldTransform;d.identity(),b&&d.append(b),a.worldAlpha=1;for(var e=a.children,f=0,g=e.length;g>f;f++)e[f].updateTransform();c&&this.textureBuffer.clear();var h=this.textureBuffer.context,i=this.renderer.resolution;this.renderer.resolution=this.resolution,this.renderer.renderDisplayObject(a,h),this.renderer.resolution=i}},b.RenderTexture.prototype.getImage=function(){var a=new Image;return a.src=this.getBase64(),a},b.RenderTexture.prototype.getBase64=function(){return this.getCanvas().toDataURL()},b.RenderTexture.prototype.getCanvas=function(){if(this.renderer.type===b.WEBGL_RENDERER){var a=this.renderer.gl,c=this.textureBuffer.width,d=this.textureBuffer.height,e=new Uint8Array(4*c*d);a.bindFramebuffer(a.FRAMEBUFFER,this.textureBuffer.frameBuffer),a.readPixels(0,0,c,d,a.RGBA,a.UNSIGNED_BYTE,e),a.bindFramebuffer(a.FRAMEBUFFER,null);var f=new b.CanvasBuffer(c,d),g=f.context.getImageData(0,0,c,d);return g.data.set(e),f.context.putImageData(g,0,0),f.canvas}return this.textureBuffer.canvas},b.RenderTexture.tempMatrix=new b.Matrix,b.AbstractFilter=function(a,b){this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.uniforms=b||{},this.fragmentSrc=a||[]},b.AbstractFilter.prototype.constructor=b.AbstractFilter,b.AbstractFilter.prototype.syncUniforms=function(){for(var a=0,b=this.shaders.length;b>a;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.2.0-RC6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};PIXI.InteractionManager=PIXI.InteractionManager||function(){},PIXI.dontSayHello=!0,c.Utils={getProperty:function(a,b){for(var c=b.split("."),d=c.pop(),e=c.length,f=1,g=c[0];e>f&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixin:function(a,b){if(!a||"object"!=typeof a)return b;for(var d in a){var e=a[d];if(!e.childNodes&&!e.cloneNode){var f=typeof a[d];b[d]=a[d]&&"object"===f?typeof b[d]===f?c.Utils.mixin(a[d],b[d]):c.Utils.mixin(a[d],new e.constructor):a[d]}}return b}},c.Circle=function(a,b,c){a=a||0,b=b||0,c=c||0,this.x=a,this.y=b,this._diameter=c,this._radius=c>0?.5*c:0},c.Circle.prototype={type:null,circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},angleSq:function(a){return this.subtract(a).angle(a.subtract(this))},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.angleSq=function(a,b){return a.subtract(b).angle(b.subtract(a))},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Rectangle=function(a,b,c,d){a=a||0,b=b||0,c=c||0,d=d||0,this.x=a,this.y=b,this.width=c,this.height=d},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a,b){return c.Rectangle.intersects(this,a,b)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Ellipse=function(a,b,d,e){this.type=c.ELLIPSE,a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},c.Ellipse.prototype.getBounds=function(){return new c.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Ellipse=c.Ellipse,c.Polygon=function(){this.type=c.POLYGON,this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0},c.Polygon.prototype={clone:function(a){var b=this._points.slice();return"undefined"==typeof a||null===a?a=new c.Polygon(b):a.setTo(b),a},contains:function(a,b){for(var c=this._points.length,d=!1,e=-1,f=c-1;++e=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,d=0,e=a.length;e>d;d++){if("number"==typeof a[d]){var f=new c.Point(a[d],a[d+1]);d++}else var f=new c.Point(a[d].x,a[d].y);this._points.push(f),f.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),PIXI.Graphics.prototype.lineStyle=function(a,b,c){if(this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=arguments.length<3?1:c,this.currentPath){if(this.currentPath.shape.points.length)return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))),this;this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha}return this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;l++)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;q++)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f){var g=a+Math.cos(d)*c,h=b+Math.sin(d)*c,i=this.currentPath.shape.points;if(0===i.length?(this.moveTo(g,h),i=this.currentPath.shape.points):(i[i.length-2]!==g||i[i.length-1]!==h)&&i.push(g,h),d===e)return this;!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var j=f?-1*(d-e):e-d,k=Math.abs(j)/(2*Math.PI)*40;if(0===j)return this;for(var l=j/(2*k),m=2*l,n=Math.cos(l),o=Math.sin(l),p=k-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);i.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){return a instanceof Array||(a=Array.prototype.slice.call(arguments)),this.drawShape(new PIXI.Polygon(a)),this},PIXI.Graphics.prototype.clear=function(){return this.lineWidth=0,this.filling=!1,this.dirty=!0,this.clearDirty=!0,this.graphicsData=[],this},PIXI.Graphics.prototype.generateTexture=function(a,b){a=a||1;var c=this.getBounds(),d=new PIXI.CanvasBuffer(c.width*a,c.height*a),e=PIXI.Texture.fromCanvas(d.canvas,b);return e.baseTexture.resolution=a,d.context.scale(a,a),d.context.translate(-c.x,-c.y),PIXI.CanvasGraphics.renderGraphics(this,d.context),e},PIXI.Graphics.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.worldAlpha=this.worldAlpha,void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite,a);if(a.spriteBatch.stop(),a.blendModeManager.setBlendMode(this.blendMode),this._mask&&a.maskManager.pushMask(this._mask,a),this._filters&&a.filterManager.pushFilter(this._filterBlock),this.blendMode!==a.spriteBatch.currentBlendMode){a.spriteBatch.currentBlendMode=this.blendMode;var b=PIXI.blendModesWebGL[a.spriteBatch.currentBlendMode];a.spriteBatch.gl.blendFunc(b[0],b[1])}if(this.webGLDirty&&(this.dirty=!0,this.webGLDirty=!1),PIXI.WebGLGraphics.renderGraphics(this,a),this.children.length){a.spriteBatch.start();for(var c=0,d=this.children.length;d>c;c++)this.children[c]._renderWebGL(a);a.spriteBatch.stop()}this._filters&&a.filterManager.popFilter(),this._mask&&a.maskManager.popMask(this.mask,a),a.drawCount++,a.spriteBatch.start()}},PIXI.Graphics.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha&&this.isMask!==!0){if(this._cacheAsBitmap)return(this.dirty||this.cachedSpriteDirty)&&(this._generateCachedSprite(),this.updateCachedSpriteTexture(),this.cachedSpriteDirty=!1,this.dirty=!1),this._cachedSprite.alpha=this.alpha,void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite,a);var b=a.context,c=this.worldTransform;this.blendMode!==a.currentBlendMode&&(a.currentBlendMode=this.blendMode,b.globalCompositeOperation=PIXI.blendModesCanvas[a.currentBlendMode]),this._mask&&a.maskManager.pushMask(this._mask,a);var d=a.resolution;b.setTransform(c.a*d,c.b*d,c.c*d,c.d*d,c.tx*d,c.ty*d),PIXI.CanvasGraphics.renderGraphics(this,b);for(var e=0,f=this.children.length;f>e;e++)this.children[e]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},PIXI.Graphics.prototype.getBounds=function(a){if(this.isMask)return PIXI.EmptyRectangle;this.dirty&&(this.updateLocalBounds(),this.webGLDirty=!0,this.cachedSpriteDirty=!0,this.dirty=!1);var b=this._localBounds,c=b.x,d=b.width+b.x,e=b.y,f=b.height+b.y,g=a||this.worldTransform,h=g.a,i=g.b,j=g.c,k=g.d,l=g.tx,m=g.ty,n=h*d+j*f+l,o=k*f+i*d+m,p=h*c+j*f+l,q=k*f+i*c+m,r=h*c+j*e+l,s=k*e+i*c+m,t=h*d+j*e+l,u=k*e+i*d+m,v=n,w=o,x=n,y=o;return x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._bounds},PIXI.Graphics.prototype.updateLocalBounds=function(){var a=1/0,b=-1/0,c=1/0,d=-1/0;if(this.graphicsData.length)for(var e,f,g,h,i,j,k=0;kg?g:a,b=g+i>b?g+i:b,c=c>h?h:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.CIRC)g=e.x,h=e.y,i=e.radius+n/2,j=e.radius+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else if(m===PIXI.Graphics.ELIP)g=e.x,h=e.y,i=e.width+n/2,j=e.height+n/2,a=a>g-i?g-i:a,b=g+i>b?g+i:b,c=c>h-j?h-j:c,d=h+j>d?h+j:d;else{f=e.points;for(var o=0;og-n?g-n:a,b=g+n>b?g+n:b,c=c>h-n?h-n:c,d=h+n>d?h+n:d}}else a=0,b=0,c=0,d=0;var p=this.boundsPadding;this._localBounds.x=a-p,this._localBounds.width=b-a+2*p,this._localBounds.y=c-p,this._localBounds.height=d-c+2*p},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this.fillColor=d,this.fillAlpha=e,this.fill=f,this.shape=g,this.type=g.type},PIXI.Graphics.POLY=0,PIXI.Graphics.RECT=1,PIXI.Graphics.CIRC=2,PIXI.Graphics.ELIP=3,PIXI.Graphics.RREC=4,PIXI.Polygon.prototype.type=PIXI.Graphics.POLY,PIXI.Rectangle.prototype.type=PIXI.Graphics.RECT,PIXI.Circle.prototype.type=PIXI.Graphics.CIRC,PIXI.Ellipse.prototype.type=PIXI.Graphics.ELIP,PIXI.RoundedRectangle.prototype.type=PIXI.Graphics.RREC,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this._edge=0,this._position=new c.Point,this.displayObject=null,this.scale=null,this._targetPosition=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target).multiply(this.target.parent?this.target.parent.worldTransform.a:1,this.target.parent?this.target.parent.worldTransform.d:1),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},render:function(){},resize:function(){},paused:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),this.game.load.onLoadComplete.add(this.loadComplete,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return this.states[a].preload&&(b=!0),this.states[a].create&&(b=!0),this.states[a].update&&(b=!0),this.states[a].render&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[])},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created&&this.onUpdateCallback?this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created&&this.onPauseUpdateCallback?this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(){this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created&&this.onRenderCallback?(this.game.renderType===c.CANVAS&&(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0)),this.onRenderCallback.call(this.callbackContext,this.game),this.game.renderType===c.CANVAS&&this.game.context.restore()):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null}},c.StateManager.prototype.constructor=c.StateManager,c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.ArrayList=function(){this.total=0,this.position=0,this.list=[]},c.ArrayList.prototype={add:function(a){return this.exists(a)||(this.list.push(a),this.total++),a},getIndex:function(a){return this.list.indexOf(a)},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0,this.total=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),this.total--,a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)}},Object.defineProperty(c.ArrayList.prototype,"first",{get:function(){return this.position=0,this.total>0?this.list[0]:null}}),Object.defineProperty(c.ArrayList.prototype,"next",{get:function(){return this.positionb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return!PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.LINEAR=a?0:1}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c http://phaser.io %c %c ♥%c♥%c♥ ","background: #7a66a3","background: #625186","color: #ffffff; background: #43375b;","background: #625186","background: #ccb9f2","background: #625186"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bb;b++)this.children[b].preUpdate()},c.Stage.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Stage.prototype.postUpdate=function(){if(this.game.world.camera.target){this.game.world.camera.target.postUpdate(),this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a]!==this.game.world.camera.target&&this.children[a].postUpdate()}else{this.game.world.camera.update();for(var a=this.children.length;a--;)this.children[a].postUpdate()}},c.Stage.prototype.checkVisibility=function(){this._hiddenVar=void 0!==document.webkitHidden?"webkitvisibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.hidden?"visibilitychange":null,this._hiddenVar&&document.addEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=this._onChange,window.onpageshow=this._onChange,window.onblur=this._onChange,window.onfocus=this._onChange;var a=this;this.game.device.cocoonJSApp&&(CocoonJS.App.onSuspended.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"pause"})}),CocoonJS.App.onActivated.addEventListener(function(){c.Stage.prototype.visibilityChange.call(a,{type:"resume"})}))},c.Stage.prototype.visibilityChange=function(a){return"pagehide"===a.type||"blur"===a.type||"pageshow"===a.type||"focus"===a.type?void("pagehide"===a.type||"blur"===a.type?this.game.focusLoss(a):("pageshow"===a.type||"focus"===a.type)&&this.game.focusGain(a)):void(this.disableVisibilityChange||(document.hidden||document.mozHidden||document.msHidden||document.webkitHidden||"pause"===a.type?this.game.gamePaused(a):this.game.gameResumed(a)))},c.Stage.prototype.setBackgroundColor=function(a){var b=c.Color.valueToColor(a);this._backgroundColor=c.Color.getColor(b.r,b.g,b.b),this.backgroundColorSplit=[b.r/255,b.g/255,b.b/255],this.backgroundColorString=c.Color.RGBtoString(b.r,b.g,b.b,255,"#")},c.Stage.prototype.destroy=function(){this._hiddenVar&&document.removeEventListener(this._hiddenVar,this._onChange,!1),window.onpagehide=null,window.onpageshow=null,window.onblur=null,window.onfocus=null},Object.defineProperty(c.Stage.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(a){this.game.transparent||this.setBackgroundColor(a)}}),Object.defineProperty(c.Stage.prototype,"smoothed",{get:function(){return PIXI.scaleModes.DEFAULT===PIXI.scaleModes.LINEAR},set:function(a){PIXI.scaleModes.DEFAULT=a?PIXI.scaleModes.LINEAR:PIXI.scaleModes.NEAREST}}),c.Group=function(a,b,d,e,f,g){"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=c.Physics.ARCADE),this.game=a,"undefined"==typeof b&&(b=a.world),this.name=d||"group",PIXI.DisplayObjectContainer.call(this),e?this.game.stage.addChild(this):b&&b.addChild(this),this.z=0,this.type=c.GROUP,this.alive=!0,this.exists=!0,this.ignoreDestroy=!1,this.classType=c.Sprite,this.scale=new c.Point(1,1),this.cursor=null,this.cameraOffset=new c.Point,this.enableBody=f,this.enableBodyDebug=!1,this.physicsBodyType=g,this.onDestroy=new c.Signal,this._sortProperty="z",this._cache=[0,0,0,0,1,0,1,0,0,0]},c.Group.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.Group.prototype.constructor=c.Group,c.Group.RETURN_NONE=0,c.Group.RETURN_TOTAL=1,c.Group.RETURN_CHILD=2,c.Group.SORT_ASCENDING=-1,c.Group.SORT_DESCENDING=1,c.Group.prototype.add=function(a,b){return"undefined"==typeof b&&(b=!1),a.parent!==this&&(this.enableBody&&this.game.physics.enable(a,this.physicsBodyType),this.addChild(a),a.z=this.children.length,!b&&a.events&&a.events.onAddedToGroup.dispatch(a,this),null===this.cursor&&(this.cursor=a)),a},c.Group.prototype.addMultiple=function(a,b){if(Array.isArray(a))for(var c=0;ca||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,f.events&&f.events.onAddedToGroup.dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this._cache[8]=a,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this._cache[8]>=this.children.length-1?this._cache[8]=0:this._cache[8]++,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this._cache[8]?this._cache[8]=this.children.length-1:this._cache[8]--,this.cursor=this.children[this._cache[8]],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);if(-1!==d){void 0!==b.parent&&(b.events.onRemovedFromGroup.dispatch(b,this),b.parent.removeChild(b),b.parent instanceof c.Group&&b.parent.updateZ());var e=a;return this.remove(e),this.addAt(b,d),e}},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0,h=this.children.length;h>g;g++)(!c||c&&this.children[g].alive)&&(!d||d&&this.children[g].visible)&&this.setProperty(this.children[g],a,b,e,f)},c.Group.prototype.setAllChildren=function(a,b,d,e,f,g){"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),"undefined"==typeof g&&(g=!1),f=f||0;for(var h=0,i=this.children.length;i>h;h++)(!d||d&&this.children[h].alive)&&(!e||e&&this.children[h].visible)&&(this.children[h]instanceof c.Group?this.children[h].setAllChildren(a,b,d,e,f,g):this.setProperty(this.children[h],a.split("."),b,f,g))},c.Group.prototype.checkAll=function(a,b,c,d,e){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);for(var f=0,g=this.children.length;g>f;f++)if((!c||c&&this.children[f].alive)&&(!d||d&&this.children[f].visible)&&!this.checkProperty(this.children[f],a,b,e))return!1;return!0},c.Group.prototype.addAll=function(a,b,c,d){this.setAll(a,b,c,d,1)},c.Group.prototype.subAll=function(a,b,c,d){this.setAll(a,b,c,d,2)},c.Group.prototype.multiplyAll=function(a,b,c,d){this.setAll(a,b,c,d,3)},c.Group.prototype.divideAll=function(a,b,c,d){this.setAll(a,b,c,d,4)},c.Group.prototype.callAllExists=function(a,b){for(var c=Array.prototype.splice.call(arguments,2),d=0,e=this.children.length;e>d;d++)this.children[d].exists===b&&this.children[d][a]&&this.children[d][a].apply(this.children[d],c)},c.Group.prototype.callbackFromArray=function(a,b,c){if(1==c){if(a[b[0]])return a[b[0]]}else if(2==c){if(a[b[0]][b[1]])return a[b[0]][b[1]]}else if(3==c){if(a[b[0]][b[1]][b[2]])return a[b[0]][b[1]][b[2]]}else if(4==c){if(a[b[0]][b[1]][b[2]][b[3]])return a[b[0]][b[1]][b[2]][b[3]]}else if(a[b])return a[b];return!1},c.Group.prototype.callAll=function(a,b){if("undefined"!=typeof a){a=a.split(".");var c=a.length;if("undefined"==typeof b||null===b||""===b)b=null;else if("string"==typeof b){b=b.split(".");var d=b.length}for(var e=Array.prototype.splice.call(arguments,2),f=null,g=null,h=0,i=this.children.length;i>h;h++)f=this.callbackFromArray(this.children[h],a,c),b&&f?(g=this.callbackFromArray(this.children[h],b,d),f&&f.apply(g,e)):f&&f.apply(this.children[h],e)}},c.Group.prototype.preUpdate=function(){if(!this.exists||!this.parent.exists)return this.renderOrderID=-1,!1;for(var a=this.children.length;a--;)this.children[a].preUpdate();return!0},c.Group.prototype.update=function(){for(var a=this.children.length;a--;)this.children[a].update()},c.Group.prototype.postUpdate=function(){1===this._cache[7]&&(this.x=this.game.camera.view.x+this.cameraOffset.x,this.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=this.children.length;a--;)this.children[a].postUpdate()},c.Group.prototype.filter=function(a,b){for(var d=-1,e=this.children.length,f=new c.ArrayList;++de;e++)(!c||c&&this.children[e].exists)&&(d[0]=this.children[e],a.apply(b,d))},c.Group.prototype.forEachExists=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("exists",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachAlive=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!0,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.forEachDead=function(a,b){var d=Array.prototype.splice.call(arguments,2);d.unshift(null),this.iterate("alive",!1,c.Group.RETURN_TOTAL,a,b,d)},c.Group.prototype.sort=function(a,b){this.children.length<2||("undefined"==typeof a&&(a="z"),"undefined"==typeof b&&(b=c.Group.SORT_ASCENDING),this._sortProperty=a,this.children.sort(b===c.Group.SORT_ASCENDING?this.ascendingSortHandler.bind(this):this.descendingSortHandler.bind(this)),this.updateZ())},c.Group.prototype.customSort=function(a,b){this.children.length<2||(this.children.sort(a.bind(b)),this.updateZ())},c.Group.prototype.ascendingSortHandler=function(a,b){return a[this._sortProperty]b[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;"undefined"==typeof e&&(e=!1);for(var h=0,i=0,j=this.children.length;j>i;i++)if(this.children[i][a]===b&&(h++,e&&(g[0]=this.children[i],e.apply(f,g)),d===c.Group.RETURN_CHILD))return this.children[i];return d===c.Group.RETURN_TOTAL?h:d===c.Group.RETURN_CHILD?null:void 0},c.Group.prototype.getFirstExists=function(a){return"boolean"!=typeof a&&(a=!0),this.iterate("exists",a,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstAlive=function(){return this.iterate("alive",!0,c.Group.RETURN_CHILD)},c.Group.prototype.getFirstDead=function(){return this.iterate("alive",!1,c.Group.RETURN_CHILD)},c.Group.prototype.getTop=function(){return this.children.length>0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup.dispatch(a,this);var d=this.removeChild(a);return this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup.dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);a&&c&&c.destroy(!0)}while(this.children.length>0);this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup.dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,c.DOM.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState(!1);(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,e.width,e.height),this.setScreenSize(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),c.Game=function(a,b,d,e,f,g,h,i){this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.rnd=null,this.device=null,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this._deltaTime=0,this._lastCount=0,this._spiralling=0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f));var j=this;return this._onBoot=function(){return j.boot()},"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(this._onBoot,0):"undefined"==typeof window.cordova||navigator.isCocoonJS?(document.addEventListener("DOMContentLoaded",this._onBoot,!1),window.addEventListener("load",this._onBoot,!1)):document.addEventListener("deviceready",this._onBoot,!1),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(document.body?(document.removeEventListener("DOMContentLoaded",this._onBoot),window.removeEventListener("load",this._onBoot),this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.device=new c.Device(this),this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.device.checkFullScreenSupport(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug&&(this.debug=new c.Utils.Debug(this),this.debug.boot()),this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this.raf.start()):window.setTimeout(this._onBoot,20))},showDebugHeader:function(){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #3db79f","background: #329582","color: #ffffff; background: #226558;","background: #329582","background: #3db79f","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:1,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._spiralling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiralling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);for(var c=0;this._deltaTime>=b&&(this._deltaTime-=b,this.updateLogic(1/this.time.desiredFps),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiralling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: only "+c.Input.MAX_POINTERS+" pointer allowed"),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.activePointer=this,this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.game.input.x,this.game.input.y),this.game.input.circle.x=this.game.input.x,this.game.input.circle.y=this.game.input.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite._cache[3],c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite._cache[3],c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;f0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.InputHandler=function(a){this.sprite=a,this.game=a.game,this.enabled=!1,this.checked=!1,this.priorityID=0,this.useHandCursor=!1,this._setHandCursor=!1,this.isDragged=!1,this.allowHorizontalDrag=!0,this.allowVerticalDrag=!0,this.bringToTop=!1,this.snapOffset=null,this.snapOnDrag=!1,this.snapOnRelease=!1,this.snapX=0,this.snapY=0,this.snapOffsetX=0,this.snapOffsetY=0,this.pixelPerfectOver=!1,this.pixelPerfectClick=!1,this.pixelPerfectAlpha=255,this.draggable=!1,this.boundsRect=null,this.boundsSprite=null,this.consumePointerEvent=!1,this.scaleLayer=!1,this._dragPhase=!1,this._wasEnabled=!1,this._tempPoint=new c.Point,this._pointerData=[],this._pointerData.push({id:0,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1})},c.InputHandler.prototype={start:function(a,b){if(a=a||0,"undefined"==typeof b&&(b=!1),this.enabled===!1){this.game.input.interactiveItems.add(this),this.useHandCursor=b,this.priorityID=a;for(var d=0;10>d;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0,this.sprite.events&&null===this.sprite.events.onInputOver&&(this.sprite.events.onInputOver=new c.Signal,this.sprite.events.onInputOut=new c.Signal,this.sprite.events.onInputDown=new c.Signal,this.sprite.events.onInputUp=new c.Signal,this.sprite.events.onDragStart=new c.Signal,this.sprite.events.onDragStop=new c.Signal)}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite._cache[3]b;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver.dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut.dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown.dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp.dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var b=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-b.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-b.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.sprite.events.onDragStart.dispatch(this.sprite,a)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop.dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.xthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-this.sprite.width),this.sprite.ythis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-this.sprite.height))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.camerOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.camerOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.camerOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.camerOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.xthis.boundsSprite.x+this.boundsSprite.width&&(this.sprite.x=this.boundsSprite.x+this.boundsSprite.width-this.sprite.width),this.sprite.ythis.boundsSprite.y+this.boundsSprite.height&&(this.sprite.y=this.boundsSprite.y+this.boundsSprite.height-this.sprite.height))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Events=function(a){this.parent=a,this.onAddedToGroup=new c.Signal,this.onRemovedFromGroup=new c.Signal,this.onRemovedFromWorld=new c.Signal,this.onDestroy=new c.Signal,this.onKilled=new c.Signal,this.onRevived=new c.Signal,this.onOutOfBounds=new c.Signal,this.onEnterBounds=new c.Signal,this.onInputOver=null,this.onInputOut=null,this.onInputDown=null,this.onInputUp=null,this.onDragStart=null,this.onDragStop=null,this.onAnimationStart=null,this.onAnimationComplete=null,this.onAnimationLoop=null},c.Events.prototype={destroy:function(){this.parent=null,this.onDestroy.dispose(),this.onAddedToGroup.dispose(),this.onRemovedFromGroup.dispose(),this.onRemovedFromWorld.dispose(),this.onKilled.dispose(),this.onRevived.dispose(),this.onOutOfBounds.dispose(),this.onInputOver&&(this.onInputOver.dispose(),this.onInputOut.dispose(),this.onInputDown.dispose(),this.onInputUp.dispose(),this.onDragStart.dispose(),this.onDragStop.dispose()),this.onAnimationStart&&(this.onAnimationStart.dispose(),this.onAnimationComplete.dispose(),this.onAnimationLoop.dispose())}},c.Events.prototype.constructor=c.Events,c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.BitmapData=function(a,b,d,e){"undefined"==typeof d&&(d=256),"undefined"==typeof e&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(d,e,"",!0),this.context=this.canvas.getContext("2d"),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=this.imageData.data,this.pixels=null,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData",a.rnd.uuid()),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle},c.BitmapData.prototype={add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.SPRITE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.autoCull=!1,this.input=null,this.body=null,this.alive=!0,this.health=1,this.lifespan=0,this.checkWorldBounds=!1,this.outOfBoundsKill=!1,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this.scaleMin=null,this.scaleMax=null,this._cache=[0,0,0,0,1,0,1,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Sprite.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;if(this.lifespan>0&&(this.lifespan-=this.game.time.elapsed,this.lifespan<=0))return this.kill(),!1;if((this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds)if(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds))this._cache[5]=0,this.events.onEnterBounds.dispatch(this);else if(0===this._cache[5]&&!this.game.world.bounds.intersects(this._bounds)&&(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this),this.outOfBoundsKill))return this.kill(),!1;this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Sprite.prototype.update=function(){},c.Sprite.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Sprite.prototype.loadTexture=function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations.stop(),this.key=a;var e=!0,f=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.smoothed=!1)},c.Sprite.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Sprite.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Sprite.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Sprite.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Sprite.prototype.revive=function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,this.health=a,this.events&&this.events.onRevived.dispatch(this),this},c.Sprite.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Sprite.prototype.destroy=function(a){if(null!==this.game&&1!==this._cache[8]){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.input&&this.input.destroy(),this.animations&&this.animations.destroy(),this.body&&this.body.destroy(),this.events&&this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this._crop&&(this._crop=null),this._frame&&(this._frame=null),this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Sprite.prototype.damage=function(a){return this.alive&&(this.health-=a,this.health<=0&&this.kill()),this},c.Sprite.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},c.Sprite.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Sprite.prototype.play=function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0},c.Sprite.prototype.overlap=function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())},c.Sprite.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Sprite.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Sprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Sprite.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Sprite.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Sprite.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Sprite.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Sprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}}),Object.defineProperty(c.Sprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}),Object.defineProperty(c.Sprite.prototype,"renderOrderID",{get:function(){return this._cache[3]}}),Object.defineProperty(c.Sprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Sprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&this.body.removeFromWorld(),this.visible=!1)}}),Object.defineProperty(c.Sprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Sprite.prototype,"smoothed",{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}),Object.defineProperty(c.Sprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Sprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.exists=!0,this.name="",this.type=c.IMAGE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,PIXI.Sprite.call(this,PIXI.TextureCache.__default),this.transformCallback=this.checkTransform,this.transformCallbackContext=this,this.position.set(b,d),this.world=new c.Point(b,d),this.alive=!0,this.autoCull=!1,this.input=null,this.debug=!1,this.cameraOffset=new c.Point,this.cropRect=null,this._cache=[0,0,0,0,1,0,1,0,0],this._crop=null,this._frame=null,this._bounds=new c.Rectangle,this.loadTexture(e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Image.prototype.preUpdate=function(){if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;this.autoCull&&(this._bounds.copyFrom(this.getBounds()),this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++);for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Image.prototype.update=function(){},c.Image.prototype.postUpdate=function(){this.key instanceof c.BitmapData&&this.key.render(),1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Image.prototype.loadTexture=function(a,b){b=b||0,this.key=a;var d=!0,e=this.smoothed;a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?(this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(d=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b))):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),d=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty(),d&&(this._frame=c.Rectangle.clone(this.texture.frame)),e||(this.smoothed=!1)},c.Image.prototype.setFrame=function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture._updateUvs()},c.Image.prototype.resetFrame=function(){this._frame&&this.setFrame(this._frame)},c.Image.prototype.crop=function(a,b){"undefined"==typeof b&&(b=!1),a?(b&&null!==this.cropRect?this.cropRect.setTo(a.x,a.y,a.width,a.height):this.cropRect=b&&null===this.cropRect?new c.Rectangle(a.x,a.y,a.width,a.height):a,this.updateCrop()):(this._crop=null,this.cropRect=null,this.resetFrame())},c.Image.prototype.updateCrop=function(){if(this.cropRect){this._crop=c.Rectangle.clone(this.cropRect,this._crop),this._crop.x+=this._frame.x,this._crop.y+=this._frame.y;var a=Math.max(this._frame.x,this._crop.x),b=Math.max(this._frame.y,this._crop.y),d=Math.min(this._frame.right,this._crop.right)-a,e=Math.min(this._frame.bottom,this._crop.bottom)-b;this.texture.crop.x=a,this.texture.crop.y=b,this.texture.crop.width=d,this.texture.crop.height=e,this.texture.frame.width=Math.min(d,this.cropRect.width),this.texture.frame.height=Math.min(e,this.cropRect.height),this.texture.width=this.texture.frame.width,this.texture.height=this.texture.frame.height,this.texture._updateUvs()}},c.Image.prototype.revive=function(){return this.alive=!0,this.exists=!0,this.visible=!0,this.events&&this.events.onRevived.dispatch(this),this},c.Image.prototype.kill=function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled.dispatch(this),this},c.Image.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.events&&this.events.destroy(),this.input&&this.input.destroy(),this.animations&&this.animations.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.alive=!1,this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Image.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this},c.Image.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Image.prototype.checkTransform=function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},c.Image.prototype.setScaleMinMax=function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)},Object.defineProperty(c.Image.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Image.prototype,"deltaX",{get:function(){return this.world.x-this._cache[0]}}),Object.defineProperty(c.Image.prototype,"deltaY",{get:function(){return this.world.y-this._cache[1]}}),Object.defineProperty(c.Image.prototype,"deltaZ",{get:function(){return this.rotation-this._cache[2]}}),Object.defineProperty(c.Image.prototype,"inWorld",{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"inCamera",{get:function(){return this.game.world.camera.screenView.intersects(this.getBounds())}}),Object.defineProperty(c.Image.prototype,"frame",{get:function(){return this._frame},set:function(a){if(a!==this.frame){var b=this.game.cache.getFrameData(this.key);b&&aa;a++)this.children[a].preUpdate();return!0},c.TileSprite.prototype.update=function(){},c.TileSprite.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key])),this.texture.baseTexture.dirty()},c.TileSprite.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.TileSprite.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.alive=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.TileSprite.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.TileSprite.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.TileSprite.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.TileSprite.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.TileSprite.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.TileSprite.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.TileSprite.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.TileSprite.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.TileSprite.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.TileSprite.prototype,"destroyPhase",{get:function(){return!!this._cache[8]}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.game=a,this.name="",this.type=c.ROPE,this.z=0,this.events=new c.Events(this),this.animations=new c.AnimationManager(this),this.key=e,this._frame=0,this._frameName="",this._scroll=new c.Point,PIXI.Rope.call(this,e,this.points),this.position.set(b,d),this.input=null,this.world=new c.Point(b,d),this.autoCull=!1,this.checkWorldBounds=!1,this.cameraOffset=new c.Point,this.body=null,this._cache=[0,0,0,0,1,0,1,0,0],this.loadTexture(e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Rope.prototype.preUpdate=function(){if(1===this._cache[4]&&this.exists)return this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,this.body&&this.body.preUpdate(),this._cache[4]=0,!1;if(this._cache[0]=this.world.x,this._cache[1]=this.world.y,this._cache[2]=this.rotation,!this.exists||!this.parent.exists)return this._cache[3]=-1,!1;(this.autoCull||this.checkWorldBounds)&&this._bounds.copyFrom(this.getBounds()),this.autoCull&&(this.renderable=this.game.world.camera.screenView.intersects(this._bounds)),this.checkWorldBounds&&(1===this._cache[5]&&this.game.world.bounds.intersects(this._bounds)?(this._cache[5]=0,this.events.onEnterBounds.dispatch(this)):0!==this._cache[5]||this.game.world.bounds.intersects(this._bounds)||(this._cache[5]=1,this.events.onOutOfBounds.dispatch(this))),this.world.setTo(this.game.camera.x+this.worldTransform.tx,this.game.camera.y+this.worldTransform.ty),this.visible&&(this._cache[3]=this.game.stage.currentRenderOrderID++),this.animations.update(),0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.body&&this.body.preUpdate();for(var a=0,b=this.children.length;b>a;a++)this.children[a].preUpdate();return!0},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate(),1===this._cache[7]&&(this.position.x=this.game.camera.view.x+this.cameraOffset.x,this.position.y=this.game.camera.view.y+this.cameraOffset.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Rope.prototype.loadTexture=function(a,b){b=b||0,this.key=a,a instanceof c.RenderTexture?(this.key=a.key,this.setTexture(a)):a instanceof c.BitmapData?this.setTexture(a.texture):a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]))},c.Rope.prototype.setFrame=function(a){this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.texture._updateUvs()},c.Rope.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.filters&&(this.filters=null),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.animations.destroy(),this.events.destroy();var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Rope.prototype.play=function(a,b,c,d){return this.animations.play(a,b,c,d)},c.Rope.prototype.reset=function(a,b){return this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.tilePosition.x=0,this.tilePosition.y=0,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this},Object.defineProperty(c.Rope.prototype,"angle",{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}),Object.defineProperty(c.Rope.prototype,"frame",{get:function(){return this.animations.frame},set:function(a){a!==this.animations.frame&&(this.animations.frame=a)}}),Object.defineProperty(c.Rope.prototype,"frameName",{get:function(){return this.animations.frameName},set:function(a){a!==this.animations.frameName&&(this.animations.frameName=a)}}),Object.defineProperty(c.Rope.prototype,"fixedToCamera",{get:function(){return!!this._cache[7]},set:function(a){a?(this._cache[7]=1,this.cameraOffset.set(this.x,this.y)):this._cache[7]=0}}),Object.defineProperty(c.Rope.prototype,"exists",{get:function(){return!!this._cache[6]},set:function(a){a?(this._cache[6]=1,this.body&&this.body.type===c.Physics.P2JS&&this.body.addToWorld(),this.visible=!0):(this._cache[6]=0,this.body&&this.body.type===c.Physics.P2JS&&(this.body.safeRemove=!0),this.visible=!1)}}),Object.defineProperty(c.Rope.prototype,"inputEnabled",{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}),Object.defineProperty(c.Rope.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&this.body.type===c.Physics.ARCADE&&2===this.body.phase&&(this.body._reset=1)}}),Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;ka;a++)this.children[a].preUpdate();return!0},c.Text.prototype.update=function(){},c.Text.prototype.postUpdate=function(){1===this._cache[7]&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y);for(var a=0,b=this.children.length;b>a;a++)this.children[a].postUpdate()},c.Text.prototype.destroy=function(a){if(null!==this.game&&!this.destroyPhase){"undefined"==typeof a&&(a=!0),this._cache[8]=1,this.events&&this.events.onDestroy.dispatch(this),this.parent&&(this.parent instanceof c.Group?this.parent.remove(this):this.parent.removeChild(this)),this.texture.destroy(!0),this.canvas.parentNode?this.canvas.parentNode.removeChild(this.canvas):(this.canvas=null,this.context=null);var b=this.children.length;if(a)for(;b--;)this.children[b].destroy(a);else for(;b--;)this.removeChild(this.children[b]);this.exists=!1,this.visible=!1,this.filters=null,this.mask=null,this.game=null,this._cache[8]=0}},c.Text.prototype.setShadow=function(a,b,c,d){this.style.shadowOffsetX=a||0,this.style.shadowOffsetY=b||0,this.style.shadowColor=c||"rgba(0,0,0,0)",this.style.shadowBlur=d||0,this.dirty=!0},c.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,a.shadowOffsetX=a.shadowOffsetX||0,a.shadowOffsetY=a.shadowOffsetY||0,a.shadowColor=a.shadowColor||"rgba(0,0,0,0)",a.shadowBlur=a.shadowBlur||0,this.style=a,this.dirty=!0},c.Text.prototype.updateText=function(){this.texture.baseTexture.resolution=this.resolution,this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.runWordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=this.determineFontProperties(this.style.font),f=0;f0?this.updateLine(b[f],k,l):(this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(b[f],k,l),this.style.fill&&this.context.fillText(b[f],k,l));this.updateTexture()},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}}else{switch(this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),this.align){case c.RetroFont.ALIGN_LEFT:a=0;break;case c.RetroFont.ALIGN_RIGHT:a=this.width-this._text.length*(this.characterWidth+this.customSpacingX);break;case c.RetroFont.ALIGN_CENTER:a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2}this.textureBuffer.clear(),this.pasteLine(this._text,a,0,this.customSpacingX)}},c.RetroFont.prototype.pasteLine=function(a,b,d,e){for(var f=new c.Point,g=0;g=0&&(this.stamp.frame=this.grabData[a.charCodeAt(g)],f.set(b,d),this.render(this.stamp,f,!1),b+=this.characterWidth+e,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d,PIXI.TextureCache[e[f].uuid].frame.x=e[f].x,PIXI.TextureCache[e[f].uuid].frame.y=e[f].y;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Particle=function(a,b,d,e,f){c.Sprite.call(this,a,b,d,e,f),this.autoScale=!1,this.scaleData=null,this._s=0,this.autoAlpha=!1,this.alphaData=null,this._a=0},c.Particle.prototype=Object.create(c.Sprite.prototype),c.Particle.prototype.constructor=c.Particle,c.Particle.prototype.update=function(){this.autoScale&&(this._s--,this._s?this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y):this.autoScale=!1),this.autoAlpha&&(this._a--,this._a?this.alpha=this.alphaData[this._a].v:this.autoAlpha=!1)},c.Particle.prototype.onEmit=function(){},c.Particle.prototype.setAlphaData=function(a){this.alphaData=a,this._a=a.length-1,this.alpha=this.alphaData[this._a].v,this.autoAlpha=!0},c.Particle.prototype.setScaleData=function(a){this.scaleData=a,this._s=a.length-1,this.scale.set(this.scaleData[this._s].x,this.scaleData[this._s].y),this.autoScale=!0},c.Particle.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.setTo(a,b),this.position.x=a,this.position.y=b,this.alive=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this._outOfBoundsFired=!1,this.health=c,this.body&&this.body.reset(a,b,!1,!1),this._cache[4]=1,this.alpha=1,this.scale.set(1),this.autoScale=!1,this.autoAlpha=!1,this},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=a.clientTop||document.body.clientTop||0,f=a.clientLeft||document.body.clientLeft||0,g=0,h=0;return"CSS1Compat"===document.compatMode?(g=window.pageYOffset||document.documentElement.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.documentElement.scrollLeft||a.scrollLeft||0):(g=window.pageYOffset||document.body.scrollTop||a.scrollTop||0,h=window.pageXOffset||document.body.scrollLeft||a.scrollLeft||0),b.x=d.left+h-f,b.y=d.top+g-e,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.getViewport():1===a.nodeType?this.getElementBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},getViewport:function(){return{width:this.viewportWidth,height:this.viewportHeight}},inViewport:function(a,b){var c=this.getElementBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.viewportWidth&&c.left<=this.viewportHeight},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.viewportHeight>this.viewportWidth?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.viewportHeight>this.viewportWidth?d:e}},Object.defineProperty(c.DOM,"scrollX",{get:function(){return window.pageXOffset||document.documentElement.scrollLeft}}),Object.defineProperty(c.DOM,"scrollY",{get:function(){return window.pageYOffset||document.documentElement.scrollTop}}),Object.defineProperty(c.DOM,"viewportWidth",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM,"viewportHeight",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}}),Object.defineProperty(c.DOM,"documentWidth",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM,"documentHeight",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}}),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.Device=function(a){this.game=a,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.webGL=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!1,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1,this._checkOS(),this._checkAudio(),this._checkBrowser(),this._checkCSS3D(),this._checkDevice(),this._checkFeatures(),this._checkInput()},c.Device.LITTLE_ENDIAN=!1,c.Device.prototype={_checkOS:function(){var a=navigator.userAgent;/Playstation Vita/.test(a)?this.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?this.kindle=!0:/Android/.test(a)?this.android=!0:/CrOS/.test(a)?this.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?this.iOS=!0:/Linux/.test(a)?this.linux=!0:/Mac OS/.test(a)?this.macOS=!0:/Windows/.test(a)&&(this.windows=!0,/Windows Phone/i.test(a)&&(this.windowsPhone=!0)),(this.windows||this.macOS||this.linux&&this.silk===!1||this.chromeOS)&&(this.desktop=!0),(this.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(this.desktop=!1)},_checkFeatures:function(){this.canvas=!!window.CanvasRenderingContext2D||this.cocoonJS;try{this.localStorage=!!localStorage.getItem}catch(a){this.localStorage=!1}this.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),this.fileSystem=!!window.requestFileSystem,this.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),this.webGL=null===this.webGL||this.webGL===!1?!1:!0,this.worker=!!window.Worker,this.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,this.quirksMode="CSS1Compat"===document.compatMode?!1:!0,this.getUserMedia=!!(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)},_checkInput:function(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>1)&&(this.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(this.mspointer=!0),this.cocoonJS||("onwheel"in window||this.ie&&"WheelEvent"in window?this.wheelEvent="wheel":"onmousewheel"in window?this.wheelEvent="mousewheel":this.firefox&&"MouseScrollEvent"in window&&(this.wheelEvent="DOMMouseScroll"))},checkFullScreenSupport:function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=0;b0&&"none"!==a},canPlayAudio:function(a){return"mp3"==a&&this.mp3?!0:"ogg"==a&&(this.ogg||this.opus)?!0:"m4a"==a&&this.m4a?!0:"opus"==a&&this.opus?!0:"wav"==a&&this.wav?!0:"webm"==a&&this.webm?!0:!1},isConsoleOpen:function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1}},c.Device.prototype.constructor=c.Device,c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return 1&a},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var h=Math.PI/180,i=180/Math.PI;c.Math.degToRad=function(a){return a*h},c.Math.radToDeg=function(a){return a*i},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){"undefined"==typeof a&&(a=[]),this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1;for(var b,c=0;b=a[c++];)this.s0-=this.hash(b),this.s0+=~~(this.s0<0),this.s1-=this.hash(b),this.s1+=~~(this.s1<0),this.s2-=this.hash(b),this.s2+=~~(this.s2<0)},hash:function(a){var b,c,d;for(d=4022871197,a=a.toString(),c=0;c>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#"); diff --git a/src/Phaser.js b/src/Phaser.js index ea59259cc..7c7a2bfe8 100644 --- a/src/Phaser.js +++ b/src/Phaser.js @@ -10,7 +10,7 @@ */ var Phaser = Phaser || { - VERSION: '2.2.0-RC5', + VERSION: '2.2.0-RC6', GAMES: [], AUTO: 0,